$("#archive").click(function(event){
/*do something*/
});
$('#archive2').unbind('click',event);
我有这个我解除绑定的点击功能。但是,当我点击某个按钮时,我想再绑定它。
$("#archive").bind("click",event);
我使用此代码再次绑定,但它似乎不起作用。任何建议或解决方法?
答案 0 :(得分:6)
您必须保留对该函数的引用(而不是传递匿名函数):
function handler() {
// do something
}
$("#archive").click(handler); // bind the first time
$("#archive").unbind('click', handler); // unbind
$("#archive").click(handler); // bind again
在您的情况下不确定event
是什么,但如果它是传递给事件处理程序的event
对象,那么将它传递给unbind
和{{}是没有意义的1}}。
答案 1 :(得分:3)
从jQuery 1.7开始,您应该使用on和off来处理所有事件处理程序:
var handler = function() {
alert('The quick brown fox jumps over the lazy dog.');
};
$('#foo').on('click', handler);
$('#foo').off('click', handler);
答案 2 :(得分:0)
为什么在事件处理程序中没有布尔值和if
语句?
答案 3 :(得分:0)
您需要为函数提供一个处理程序,以便您可以绑定/取消绑定它。 (还允许您在同一事件中绑定/取消绑定特定事件处理程序:
var handler = function() {
alert('The quick brown fox jumps over the lazy dog.');
};
$('#foo').bind('click', handler);
$('#foo').unbind('click', handler);
答案 4 :(得分:0)
试试这个:
var closeHandle = function () {
alert('close');
};
function addClick() {
$("#btnTest").unbind('click').click(closeHandle);
}