Я сталкиваюсь с нежелательным поведением при использовании JQuery's $.on("click", function(){});
на сенсорных устройствах. Это мой код ниже:JQuery .on («click») запускает «mouseover» на сенсорном устройстве
Код:
$(".team").on("mouseover", teamMouseOver);
$(".team").on("mouseout", teamMouseOut);
$(".team").on("click", teamThumbClicked);
function teamMouseOver(event){
console.log(event.type);
}
function teamMouseOut(event){
// Do something
}
function teamThumbClicked(event){
console.log("Clicked!");
}
Проблема:
С выше кода, нажав на .team
элемента на сенсорном устройстве одновременно запускает оба слушателя, давая мне следующий журнал:
mouseover
Clicked!
Вопрос Зачем срабатывает mouseover
на сенсорном устройстве? Это не то поведение, которое я ожидаю от устройства, у которого нет мыши. Это ошибка? Какое событие я должен использовать, так что «mouseover» запускается только тогда, когда он является фактическим указателем мыши, который входит?
Мое JQuery версия 2.2.4.
** [Это может быть полезно] (http://stackoverflow.com/a/12187105/2065039) ** –
Это правильное поведение. Чего вы пытаетесь достичь? Недавно я столкнулся с той же проблемой (добавлены нежелательные классы на мобильном «клике») и смог решить проблему с использованием специфики CSS: https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity – Mussser
Я показываю всплывающую подсказку на 'mouseover', и я прячу ее на' click'. Если эти два события запускаются одновременно, всплывающая подсказка остается видимой, когда она должна быть скрыта, потому что вы нажали. Вот почему мне не нужно запускать «mouseover», когда на устройстве нет мыши. Я подумал, что это то, для чего были «прикосновения». JQuery сделал это специально для имитации: зависания? – Marquizzo