Задать вопрос
@lomaster
.NET и веб-разработчик

Событие onclick в веб-приложениях в desktop- и на iOS-браузерах?

В iOS-браузере Safari событие onClick срабатывает через ~400мс (можно проверить тут). Что бы этого избежать можно использовать событие touchstart.

Можно ли как то для всех элементов на странице определить, если у него обработчик на onClick? после чего заменить onClick на touchstart. Лучше если это будет на jQuery.



Сейчас я указываю явно для чего мне надо заменить обработчики

$('.sidebar_item').live('touchstart', function(e) {<br>
  $(this).click();<br>
  e.preventDefault();<br>
});<br>


Вот надо тоже самое, но для всех элементов. Подскажите, пожалуйста, как это сделать.



Пробовал так:

$('*').each(function() {<br>
  var me = $(this);<br>
  if(me.click != null) {<br>
    // но me.click есть для всех элементов<br>
  }<br>
});
  • Вопрос задан
  • 5005 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
ertaquo
@ertaquo
Может так?
$('*[onclick]').live('touchstart', function(e) {
  $(this).trigger('click');
  e.preventDefault();
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 дек. 2024, в 20:40
10000 руб./за проект
22 дек. 2024, в 20:34
3000 руб./за проект
22 дек. 2024, в 20:12
10000 руб./за проект