当前位置:  开发笔记 > 编程语言 > 正文

JavaScript/jQuery:事件被触发两次

如何解决《JavaScript/jQuery:事件被触发两次》经验,为你挑选了2个好方法。

我正在尝试使用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中,这两个事件仅触发一次.

为什么会这样?



1> CambridgeMik..:

我想这不会回答你的问题,但这篇文章是在研究我自己的bug时提出来的.原来问题是我无意中包含了两次外部JavaScript.

只是认为将其记录给具有相同问题的其他人是值得的.一个明显的错误,需要一段时间来追查!



2> Sam Hasler..:

我认为警报实际上导致了Chrome中的额外事件.使用以下代码我只看到一个事件.

$(document).ready(function() {
  $("p a").each(function(i, selected){
    $(selected).hover( 
      function(event) { $("p").append('
over: ' + event.type); }, function(event) { $("p").append(' out: ' + event.type); }); } ) });

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有