如果我的链接有“rebind”类,我想在按钮上禁用单击事件。 我试过这种方式(jsFiddle:http://jsfiddle.net/D6Qh5/):
$('#button').bind('click', function(){
$(this).after('<span> click is active</span>');
$('span').fadeOut(1000);
});
$('#toggle').toggle(
function(){
$(this).text('rebind').removeClass('unbind').addClass('rebind');
},
function(){
$(this).text('unbind').addClass('unbind').removeClass('rebind');
}
);
if($("#toggle").hasClass("unbind")) {
$('#button').bind('click');
}
else {
$('#button').unbind('click');
}
但是 unbind 不起作用,我在Firebug上没有任何错误。我不知道我做错了什么 任何帮助表示赞赏!谢谢!
答案 0 :(得分:2)
你的bind,unbind方法放错了地方。
$('#button').on('click', Button_Click);
function Button_Click(){
$(this).after('<span> click is active</span>');
$('span').fadeOut(1000);
}
$('#toggle').toggle(
function(){
$(this).text('rebind').removeClass('unbind').addClass('rebind');
$('#button').unbind('click');
},
function(){
$(this).text('unbind').addClass('unbind').removeClass('rebind');
$('#button').bind('click',Button_Click);
}
);
http://jsfiddle.net/FtATg/
同样在jQuery 1.7中,.on()和.off()方法更适合在元素上附加和删除事件处理程序。