Как запустить обработчик событий только один раз для нескольких типов событий?Обработка нескольких событий, но пожарный обработчик только для одного события
$("p").on("click touchend", function(e) {
console.log("<p> was clicked");
});
Этот обработчик вызывается на некоторых устройствах дважды - во-первых, для «touchend» событие (или «touchstart», например, - это не имеет значения в данном случае), а затем этот обработчик автоматически запускается снова " щелчок ".
Это работает как "click" && "touchend"
, но я хочу, чтобы он действовал как "click" || "touchend"
. Есть ли простой способ для предотвратить вызов обработчика для «щелчка» при срабатывании «touch (start/end)» и наоборот? Единственное решение, которое я выяснил, - это отвязать событие «щелчок», если e.type
был «косвенным».
Я нашел информацию, что .on("click touchend")
должен работать только для одного события в коллекции, но я проверил, что он запускается дважды, по крайней мере, на нескольких мобильных устройствах, поэтому у вас есть лучшее решение для этого случая?
попробуйте добавить 'возвращать ложь, или' e.preventDefault() '. Может быть, проблема с пузырьками – Spokey
- это код внутри итератора или цикла? – CodeGodie