Событие 'click' для отдельного приложения HTML5 для iOS не запускается при динамическом вводе

0

Я сталкиваюсь с проблемой, которая, кажется, происходит только в автономном режиме приложения HTML5, которое я сохранил на главном экране моего устройства iOS.

В автономном режиме я имею в виду веб-приложение HTML со следующим metatag:

<meta name="apple-mobile-web-app-capable" content="yes">

Javascript (написанный в coffeescript), о котором идет речь, выглядит следующим образом:

$( ->
  $(document).on('click', 'input', (e) ->
    alert('click')
  )

  $(document).on('focusout', 'input', (e) ->
    alert('blur')
  )
)

Это делегированные обработчики событий для обработки динамически <input> элементов <input>. Сообщения alert() отображаются в Mobile Safari. Однако, когда веб-приложение просматривается в автономном режиме (т.е. запускается с главного экрана), события не срабатывают.

Я использую jQuery v1.10.2, если это полезно.

Теги:
mobile-safari
iphone-standalone-web-app

1 ответ

0

Я столкнулся с аналогичной проблемой, когда динамически созданные входы не имеют указателя или позволяют вводить их при первом нажатии/прикосновении к входу. Клавиатура подходит, а свитки страниц показывают, что вход выбран, но на самом деле это не так. Второе касание/щелчок на входе помещает курсор на вход и позволяет вводить текст.

Мое обходное решение состояло в том, чтобы прикрепить событие touchhend к этому конкретному входу, а затем снова сфокусировать этот ввод, используя jQuery focus(). Мне пришлось использовать touchhend, потому что событие click не срабатывало в автономном режиме.

Ниже приведен фрагмент кода, вам придется извинить синтаксис, я использую Backbone. Это метод, вызываемый прикосновением моего ввода.

clickedInput: function (e) {

    if (window.navigator.standalone) {

        $(e.currentTarget).focus();

    }

}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню