Jquery 取消绑定后无法重新绑定click事件

Jquery 取消绑定后无法重新绑定click事件,jquery,Jquery,在将单击事件重新绑定到div时,我遇到了这个问题。我已尝试通过许多方法来实现这一点: 1.开/关 2.绑定/解除绑定 3.启用/禁用div 但一切都不起作用。以下是我目前的代码: $("#divid").click(function() { someMethod(); }); function someMethod(){ //code goes here $("#divid").unbind('click'); } //inside other method, i am trying

在将单击事件重新绑定到div时,我遇到了这个问题。我已尝试通过许多方法来实现这一点:
1.开/关
2.绑定/解除绑定
3.启用/禁用div
但一切都不起作用。以下是我目前的代码:

$("#divid").click(function() {
    someMethod();
});

function someMethod(){
//code goes here
$("#divid").unbind('click');
}

//inside other method, i am trying to rebind the click event
function otherMethod(){
$('#divid').on("click", someMethod());
//Also tried
//$('#divid').on("click", someMethod);
}
Firefox控制台出现错误:
ReferenceError:未定义someMethod

我研究了.on Api和on(事件、处理程序\方法\名称)是否有效
请建议可能的解决方案。

试试这个

function someMethod(){
//Do stuff here
});

$(document).off('click', '#divid').on('click', '#divid', someMethod);

您正在使用调用函数

   $('#divid').on("click", someMethod());
应该是

   $('#divid').on("click", function(){someMethod()});
另外,我在绑定之前调用了unbind以避免多个绑定。 检查这把小提琴

我认为函数执行的作用域是不同的,确保
someMethod
定义在一个可以从
otherMethod
访问的作用域中,也可以从
$('#divid')。打开(“单击”,someMethod())
错误,它应该是
$('#divid')。打开(“单击”,someMethod)我希望div都是display:block而不是hidden。