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

使用类选择器时,jquery click事件多次触发

如何解决《使用类选择器时,jqueryclick事件多次触发》经验,为你挑选了6个好方法。

这是我的HTML

  • 我用这段代码创建了一个jquery事件绑定:

        jQuery(".myLink").click(function(event) {
    
             var myId = this.id;
    
             location.href = '/x/y?myId=' + myID;
       });
    

    当我点击其中一个链接(li项目).我认为这会触发一次点击事件,当我调用this.id时,我会得到我点击的项目的id.

    但它看起来像:

       jQuery(".myLink").click(function(event) {
    

    即使我只是点击一个链接就一遍又一遍地开火.我在他们的firebug中放了一个调试器声明,看到这个被一遍又一遍地调用.

    有什么想法吗?



    1> user512568..:

    我遇到了类似的问题,我的解决方案是在声明click事件之前取消绑定click事件.没有多大意义,但我不知道多个事件是如何附加到单个HTML元素的.(我的HTML看起来有效;))

    $('.remove_lkc').unbind('click').click(function(){..........


    如果修复它,你可能会在整个过程中的某处重新绑定click事件.这里讨论重新绑定的基础知识:http://www.learningjquery.com/2008/05/working-with-events-part-2

    2> Erik..:

    如果您关闭

  • 代码,则可以解决问题.我刚刚对它进行了测试,并对其进行了修正.应该

  • ...
  • ...


  • 3> Pratik Khadl..:

    在我的例子中,我有多个标签呈现相同的部分,每个部分都有$(document).ready()调用,它将click事件绑定三次.


    D'哦!我把我的js卡在了部分模板的顶部,只是为了在我工作的时候测试它并且它已经发射了四次.让我挠头,因为其他评论似乎不符合我的情况,所以感谢你指出这一点!我完全忘了我在其他标签的其他地方使用模板......

    4> Johan B..:

    添加这两行解决了它:

    event.stopPropagation();
    event.preventDefault();
    

    来源:http: //code.google.com/intl/en/mobile/articles/fast_buttons.html



    5> rfunduk..:

    尝试将id属性的值放在引号中.你刚才放的时候会发生奇怪的事情id=1.

    另外,你怎么知道它多次开火?将此行放在函数的顶部并观察firebug日志以查看发生的情况:

    console.log( "clicked on", jQuery(this), "which has id", jQuery(this).attr('id') );
    

    编辑:

    嘿,正如其他人所指出的那样......确保你的标记也是有效的:P


    我还建议你正确关闭你的div和li元素.

    6> chrishawn..:

    我的问题是,当我创建

    s 时,我在循环中进行了事件绑定,因此为事件中的每个项目反复添加事件.这只是需要仔细检查的东西.


    正是这个问题.我正在使用类选择器$(".class").在循环内单击(function())所以我在每次循环迭代时添加了多个单击处理程序.确保您的.click处理程序在循环外部设置.
    推荐阅读
  • 小色米虫_524
    这个屌丝很懒,什么也没留下!
    DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
    Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有