События click jquery в iOS

В хороший день, я сражался с событиями click jQuery и iOS. Я протестировал несколько решений, но они не функционируют. Первая, что я протестировал, состояла в том, чтобы добавлять его к элементам, в которых я имею события тип курсора по отношению к "пойнтеру". Но оно не функционирует.

.clickeable {
  cursor: pointer;
}

После осуществите обнаружение устройства iOS и менять события click в touchstart

var user_agent = navigator.userAgent.toLowerCase();
var event = user_agent.match(/(iphone|ipod|ipad)/)  ? "touchstart" : "click"; 
$("#menu-toggle").bind(event,function(e) {
    e.preventDefault();
    $('#menu-toggle').tooltip('hide');
    $("#wrapper").toggleClass("toggled");
    $("#menubtn")
 });

Это заставляло функционировать только кнопка меню, но другие события не функционируют. Как этот:

$('.animadoespecial').bind(event,function (event) {
   event.preventDefault();
   $('html, body').animate({
      scrollTop: $( $.attr(this, 'href') ).offset().top -100
   }, 500);
});

Также я попытался добавляя признак onClick, но ничто не функционирует.

$('#menu-toggle').attr('onclick', '');

Что сможет быть?

0
задан 19.01.2017, 00:25
0 ответов

Имей в виду, что: в общем, в подвижных устройствах событие touchstart он взрывается немедленно после того, как касание случилось, в то время как событие click он взрывается 300ms после. Если ты перемешиваешь эти, возможно находись с проблемой click призрак.

Ésto болен:

$('.animadoespecial').bind(event,function (event) { ... });

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

// o touchstart
$('.animadoespecial').bind('click', function (event) { ... });

Что значит ésto?

$('#menu-toggle').attr('onclick', '');

Он не имеет никакого чувства. Только ты устанавливаешь пустой string в признак onclick элемента.


Заметь: Этот метод был помечен как deprecated в версии 3.x. Рекомендует использовать on в Вашем месте:

// o touchstart
$('.animadoespecial').on('click', function (event) { ... });
1
ответ дан 03.12.2019, 17:37