Javascript 了解jquery开/关函数的区别

Javascript 了解jquery开/关函数的区别,javascript,jquery,Javascript,Jquery,我一直在编一页,遇到了一些我不懂的东西 目标是在按下按钮时禁用关联菜单,然后再次启用 第一个示例禁用了contextmenu,但之后无法再次启用它 注意:“off”命令显然不是在“on”命令之后立即运行的,为了方便读者,我刚刚拉出了相关代码 有人能给我解释一下为什么这不起作用吗: $(document).on("contextmenu",function(e){return false;}); $(document).off("contextmenu",function(e){return fa

我一直在编一页,遇到了一些我不懂的东西

目标是在按下按钮时禁用关联菜单,然后再次启用

第一个示例禁用了contextmenu,但之后无法再次启用它

注意:“off”命令显然不是在“on”命令之后立即运行的,为了方便读者,我刚刚拉出了相关代码

有人能给我解释一下为什么这不起作用吗:

$(document).on("contextmenu",function(e){return false;});
$(document).off("contextmenu",function(e){return false;});
但这确实:

function returnFalse(e) {        
    return false;
}
$(document).on("contextmenu",returnFalse);
$(document).off("contextmenu",returnFalse);

不起作用的原因是您说“在contextmenu上,运行此匿名函数”。然后你说“脱离上下文菜单,不要做这个新的匿名函数”

无论何时编写匿名函数,它本质上都是一个新函数,因此以后无法引用它


您必须保存函数以备将来使用,这样jQuery就知道实际删除哪个函数。

因为
off
删除了一个实际上作为处理程序附加到元素上的函数。在第一个示例中,您试图删除一个从未作为处理程序附加的传真匿名函数。

我认为在您的情况下,只需执行
$(文档)。关闭(“上下文菜单”)
。您能否选择一个答案,这样这个问题就不会被视为未回答?谢谢