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)

Решение

Я думаю, что каким-то образом предупреждение действительно вызывает дополнительные события в 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.

Просто подумал, что стоит задокументировать это для других, у кого такая же проблема. Очевидная ошибка, на устранение которой потребовалось время!