1

好的,我正在构建一个工具,它调用设置 JQuery 事件处理程序的函数,但结果是当调用不同的函数时,将一遍又一遍地设置相同的处理程序。它按预期工作:最近调用的处理程序的操作是执行的操作。但是,这会造成混乱吗?换句话说,当我在某事物上放置一个点击事件,然后再对另一个事物进行点击事件时,第一个事件还存在吗?如果是这样,我该如何删除它?

谢谢!

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

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

2 回答 2

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

于 2013-11-15T08:36:37.770 回答
0

您可以使用$(selector).toggle(),如下所示:

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

这是演示,希望这可以帮助你:p

于 2013-11-15T09:09:45.500 回答