Хорошо, я чувствую себя сумасшедшим...
Я смотрю Mobile Safari на iOs 6.0. Кажется, я не могу установить какую-либо рифму или причину, когда при нажатии на элемент будет нажата кнопка. Во многих случаях кажется, что мне нужно нажать один раз, чтобы вызвать зависание, а затем снова вызвать щелчок.
Спецификация Mobile Safari говорит: "... Поток событий, создаваемых жесты одним пальцем и двумя пальцами, зависит от условий независимо от того, является ли выбранный элемент кликабельным или прокручиваемым... Элемент clickable - это ссылка, элемент формы, область карты изображения или любой другой элемент с помощью mousemove, mousedown, mouseup или onclick-обработчиков... Из-за этих различий вы может потребоваться изменить некоторые из ваших элементов на интерактивные элементы..."
Далее предполагается, что разработчик "... Добавить фиктивный обработчик onclick onclick =" void (0) ", так что Safari в iOS распознает элемент span как элемент, который можно использовать для кликов".
Однако мое тестирование показало, что эти утверждения являются ложными.
JsFiddle: http://jsfiddle.net/6Ymcy/1/
HTML
<div id="plain-div" onclick="void(0)">Plain Div</div>
JS
document.getElementById('plain-div').addEventListener('click', function() {
alert('click');
});
Попробуйте нажать элемент на iPad. Ничего не происходит
Но я отвлекся. Для меня важно выяснить следующий вопрос:
Точно, каковы критерии, которые определяют при нажатии на элемент, запускают событие 'click' при первом нажатии? В отличие от запуска события "наведите" на первом касании и 'click' событие на втором кране.
В моем тестировании элементы привязки - это единственные элементы, которые я могу получить, чтобы выстрелить по первому нажатию, а затем, только изредка и непоследовательно.
Здесь, где я начинаю чувствовать себя сумасшедшим. Я много раз искал в Интернете и почти ничего не знал об этой проблеме. Это только я?! Кто-нибудь знает, где было какое-либо обсуждение критериев для двух нажатий и или подход к решению этих ограничений?
Я рад ответить на вопросы/запросы.
Спасибо!