在单击某个函数时尝试解除绑定,然后在完成加载后重新绑定它。 到目前为止绑定工作。但是unbind什么都不做。 以下是我尝试过的不同功能。到目前为止都没有工作。
function disableswitch(){
$('.profilebutton').unbind("click", function(){
profilebuttonswitch(this.value);
});
}
function disableswitch(){
$('.profilebutton').unbind("click", function(){
profilebuttonswitch();
});
}
function disableswitch(){
$('.profilebutton').unbind("click", profilebuttonswitch);
}
有人知道为什么这些可能不适合我吗?
答案 0 :(得分:2)
只有三分之一的尝试可能有效。
当您.unbind
(或稍后的jQuery版本.off)
处理程序时,您必须提供任何函数参数,或者您必须提供完全相同的函数引用。已传递给.bind
(或.on
)。
将引用传递给看起来相同的函数不起作用,因为它没有相同的引用。
答案 1 :(得分:1)
您必须使用以下格式引用先前绑定的函数:
$( "#foo" ).bind( "click", handler );
$( "#foo" ).unbind( "click", handler );
引自http://api.jquery.com/unbind/ :
$( "#foo" ).bind( "click", function() {
alert( "The quick brown fox jumps over the lazy dog." );
});
// Will NOT work
$( "#foo" ).unbind( "click", function() {
alert( "The quick brown fox jumps over the lazy dog." );
});
即使两个功能在内容上相同,它们也是如此 单独创建,因此JavaScript可以自由地保持它们不同 功能对象。要取消绑定特定的处理程序,我们需要一个引用 对于那个功能,而不是一个碰巧做同样的事情 的事情。