2013-11-15 101 views
1

好的,我有一个工具可以调用设置JQuery事件处理程序的函数,但是结果是当调用不同的函数时,同一个处理程序会一次又一次地被设置。它按预期工作:最近处理程序调用的操作是执行的操作。这是否造成混乱,但?换句话说,当我在某个事件上再点击事件时,第一个事件仍然存在?如果是这样,我该如何删除它?多个点击事件 - 混乱?

谢谢!

这里就是我的意思是,为了清楚:

$('#ele').click(function() { 
    Do Something 
} 
$('#ele').click(function() { 
    Do Something Else 
} 
+1

很难给你任何关于我们看不到的代码的建议。 –

+0

我更新了原文。 –

回答

2

使用click添加新的点击处理程序

这将打印到控制台 “第一第二”

$("#test").click(function() { console.log("first"); }); 
$("#test").click(function() { console.log("second"); }); 

你可以使用unbind删除以前的点击处理程序。这将只打印 “第二” 来安慰

$("#test").click(function() { console.log("first"); }); 
$("#test").unbind("click").click(function() { console.log("second"); }); 

jsFiddle

+0

这就是我所希望的!谢谢。 –

+0

@JS请重新检查我的答案,因为我检查了我的假设,'click'将继续添加新的事件处理程序 – jasonscript

+0

好的,谢谢,我感谢您的双重检查! –

0

您可以使用$(selector).toggle(),像这样:

(function ($){ 
    $("#ele").toggle(a, b); 
})(jQuery); 

这里是Demo,希望这可以帮助你:对