Jquery 解除绑定后绑定click事件
我正在解除同一按钮单击上某个按钮的单击事件的绑定。我想绑定上面的按钮,再次单击其他按钮。但它不起作用Jquery 解除绑定后绑定click事件,jquery,Jquery,我正在解除同一按钮单击上某个按钮的单击事件的绑定。我想绑定上面的按钮,再次单击其他按钮。但它不起作用 $("#showSelection").bind("click", function () { alert("in"); //unbinding the button click $('#showSelection').unbind('click'); }); $("#kendowindow").click(function(){ al
$("#showSelection").bind("click", function () {
alert("in");
//unbinding the button click
$('#showSelection').unbind('click');
});
$("#kendowindow").click(function(){
alert("in2");
//want to bind the click event again but not working
$('#showSelection').bind('click');
});
您不能仅仅重新绑定它,您必须再次添加整个回调函数 为了方便起见,您可以使用一个命名函数,对于较新版本的jQuery,您应该使用
on()
和off()
,如果您只想每个元素触发一次事件处理程序,甚至还有one()
,并且在使用ID时,您只有一个匹配的元素,因此:
function doStuff() {
alert("in");
});
$("#showSelection").one("click", doStuff);
$("#kendowindow").on('click', function(){
alert("in2");
$("#showSelection").off('click').one("click", doStuff);
});
您可以使用jQuery的.one()只运行第一次单击事件一次:
$("#showSelection").one("click", function(){
alert("in");
});
$("#kendowindow").click(function(){
alert("in2");
$("#showSelection").on("click", function(){
alert("new event bound");
});
});
然而,我不确定你到底想实现什么样的情景。使用此代码,如果用户首先单击kendowindow,则将为您的showSelection单击分配第二个事件。我不确定这是不是你想要的 您可以按如下方式使用命名函数:
函数bindUnbind(){
控制台。登录(“登录”);
//松开按钮并单击
$(this.unbind('click');
}
$(“#显示选择”).bind(“单击”,bindUnbind);
$(“#kendowindow”)。单击(函数(){
控制台日志(“in2”);
//要再次绑定click事件但不起作用吗
$(“#showSelection”).unbind('click').bind('click',bindinbund);
});代码>
显示选择
剑道窗口
查看@adeneo的答案。如果要重新绑定同一事件,最好创建一个可以调用的函数,这样就不必重复。感谢您的回复:)感谢您的回复:)