$("#archive").click(function(event){
/*do something*/
});
$('#archive2').unbind('click',event);
我有这个点击功能,我解除绑定。不过,当我点击某个按钮时,我想再次绑定它。如何解除绑定并再次绑定
$("#archive").bind("click",event);
即时通讯使用此代码再次绑定,但它似乎不工作。任何建议或解决方法?
$("#archive").click(function(event){
/*do something*/
});
$('#archive2').unbind('click',event);
我有这个点击功能,我解除绑定。不过,当我点击某个按钮时,我想再次绑定它。如何解除绑定并再次绑定
$("#archive").bind("click",event);
即时通讯使用此代码再次绑定,但它似乎不工作。任何建议或解决方法?
为什么在事件处理程序中没有布尔值和if
语句?
你必须保持对函数的引用(而不是传递的匿名函数):
function handler() {
// do something
}
$("#archive").click(handler); // bind the first time
$("#archive").unbind('click', handler); // unbind
$("#archive").click(handler); // bind again
不知道什么是你的情况event
,但如果它是传递给事件处理程序event
对象那么将它传递给unbind
和bind
是没有意义的。
您需要为该函数提供一个处理程序,以便您可以绑定/取消绑定。 (也可以让你在同一事件中绑定/解除绑定特定的事件处理程序:
var handler = function() {
alert('The quick brown fox jumps over the lazy dog.');
};
$('#foo').bind('click', handler);
$('#foo').unbind('click', handler);
由于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);
使用编程语言或技术名称标记问题比较好,只有在添加一些特定标记之后 – 2011-04-29 13:19:33
是'#archive2'这是一个错字 – naiquevin 2011-04-29 13:19:53