JavaScript / jQuery: событие запускается дважды
Я пробую привязки событий с помощью jQuery, и у меня есть готовый код в моем документе:
$(document).ready(function() {
$("p a").each(function(i, selected){
$(selected).hover(
function(event) { alert('over: ' + event.type); },
function(event) { alert('out: ' + event.type); });
}
)
});
Итак, когда я наводил указатель мыши на ссылку внутри абзаца (селектор «p a»), всплывающее окно всплывает дважды. Итак, mouseenter и mouseleave запускаются дважды.
Это происходит только в Google Chrome. В Internet Explorer 7, Firefox 3, Opera и Safari оба события запускаются только один раз.
Почему это происходит?
Ответов (2)2
Я думаю, что каким-то образом предупреждение действительно вызывает дополнительные события в Chrome. В следующем коде я вижу только одно событие.
$(document).ready(function() {
$("p a").each(function(i, selected){
$(selected).hover(
function(event) { $("p").append('<br>over: ' + event.type); },
function(event) { $("p").append(' out: ' + event.type); });
}
)
});
Полагаю, это не ответ на ваш вопрос, но этот пост появился во время исследования моей собственной ошибки. Оказалось, проблема в том, что я дважды случайно включил внешний javascript.
Просто подумал, что стоит задокументировать это для других, у кого такая же проблема. Очевидная ошибка, на устранение которой потребовалось время!