给出以下代码:
if ($selector.html().indexOf("radio") > 0) {
if ($oldSelected != null) {
// enable clicks on old selected radio button
$oldSelected.children().bind('click', function () { return true; });
}
// disable click on selected
$selector.children().bind('click', function () { return false; });
$oldSelected = $selector;
}
禁用代码工作正常。一旦执行,元素就不再可点击了。但是,在尝试重新启用click事件时,没有任何反应。
建议?
答案 0 :(得分:0)
您只是一遍又一遍地绑定点击处理程序。你需要unbind()
那些你不想要活跃的人。
试试这个:
$oldSelected.children().unbind('click').bind('click', function () { return true; });
第二个想法,如果点击处理程序中没有其他逻辑,那么unbind('click')
可能就是您所需要的。
答案 1 :(得分:0)
尝试类似:
var handler = function () {
// do some stuff
};
// First
el.bind('click', handler);
// Later on...
el.unbind('click', handler);
请记住保存回调,以便以后可以取消绑定。 Unbind docs