繁体   English   中英

jQuery单击两次执行

[英]jquery double execution of single click

嗨,我有一个像这样的jquery函数

$(".btn").click(function(e){
 alert("hello"); 
});

由于某种原因,它会给出两个警报。 这源于我正在使用的插件中的另一个脚本(在我关闭插件时发现)。 在我的脚本中,我尝试解除绑定,但是没有解决办法。 我还使用了e.stopPropogation()可以工作,但是会杀死插件功能。 有没有一种方法可以让插件功能正常运行,然后让我的功能只执行一次。

提前致谢。

我检查了你的小提琴,发现这个问题是由div与data-uk-button-radiouikit.min.js将div上的click事件与data-uk-button-radio绑定,这将触发所有click事件div的孩子们。

因此,使用event判断此点击动作是否来自鼠标或脚本将解决此问题。

像这样:

(function(){
 $( ".uk-button" ).click(function( event ) {
 if(event.originalEvent)//only event from mouse has this property 
  alert("hello"); 
  // Do something
});
})(jQuery)

在这里摆弄

试试看:根据您的小提琴

$( ".uk-button" ).bind('click.uniqueEvent', function( event) {
    event.stopPropagation();


    alert("hello"); 
   // Do something
});

然后,当您想取消绑定此特定事件时。 您可以这样做:

unbind(".uniqueEvent")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM