Javascript 禁用一次后启用上下文菜单
我正在做一个项目,过去有一些学生在做这个项目,因此代码质量不如它应该的好。我试图启用当用户右键单击时出现的上下文菜单,但它没有发生 链接: 我尝试了以下方法,可以反转任何preventDefault()函数,但它不起作用。解决这个问题应该很简单,但是上下文菜单不会显示。有什么想法吗Javascript 禁用一次后启用上下文菜单,javascript,jquery,contextmenu,Javascript,Jquery,Contextmenu,我正在做一个项目,过去有一些学生在做这个项目,因此代码质量不如它应该的好。我试图启用当用户右键单击时出现的上下文菜单,但它没有发生 链接: 我尝试了以下方法,可以反转任何preventDefault()函数,但它不起作用。解决这个问题应该很简单,但是上下文菜单不会显示。有什么想法吗 $(window).bind("contextmenu", function () { return true; }); 我找不到为什么contextmenu首先被禁用的原因,因此也找不到这
$(window).bind("contextmenu", function () {
return true;
});
我找不到为什么contextmenu首先被禁用的原因,因此也找不到这个解决方案。我也尝试过使用“body”,但它也不起作用。
document.oncontextmenu=null
足以杀死它(在本例中),但请确保在调用该脚本后调用它:
您还可以从正文(顶部)中删除此代码:
document.oncontextmenu=函数(e){
var t=e | | window.event;
var elm=t.target | | t.src元素;
if(elm.nodeName==“A”| | elm.type==“text”| | elm.type==“password”)
返回true;
返回false;
}
document.oncontextmenu=null
足以杀死它(在本例中),但请确保在调用该脚本后调用它:
您还可以从正文(顶部)中删除此代码:
document.oncontextmenu=函数(e){
var t=e | | window.event;
var elm=t.target | | t.src元素;
if(elm.nodeName==“A”| | elm.type==“text”| | elm.type==“password”)
返回true;
返回false;
}
您可以使用解除绑定
:
健壮且可扩展的应用程序通常需要两个参数
基于此原因的版本:
var handler = function() {
alert( "The quick brown fox jumps over the lazy dog." );
};
$( "#foo" ).bind( "click", handler );
$( "#foo" ).unbind( "click", handler );
通过命名处理程序,我们可以确保没有其他函数是可用的
意外移除
因此,只需命名该处理程序:
var handler = function() {
return false;
};
$( window ).bind( "contextmenu", handler );
$( window ).unbind( "contextmenu", handler );
您可以使用
unbind
:
健壮且可扩展的应用程序通常需要两个参数
基于此原因的版本:
var handler = function() {
alert( "The quick brown fox jumps over the lazy dog." );
};
$( "#foo" ).bind( "click", handler );
$( "#foo" ).unbind( "click", handler );
通过命名处理程序,我们可以确保没有其他函数是可用的
意外移除
因此,只需命名该处理程序:
var handler = function() {
return false;
};
$( window ).bind( "contextmenu", handler );
$( window ).unbind( "contextmenu", handler );
我不相信你可以取消默认设置,你应该首先避免它。你的链接页面也会加载4个不同的jQuery版本。我认为这对您的情况没有帮助。我不相信您可以取消默认设置,您应该首先尝试避免它。您的链接页面也会加载4个不同的jQuery版本。我认为这对您的情况没有帮助。如果是这样的话,jQuery似乎将两者都删除。但是如果这里没有处理程序,您是如何测试它的?@CodeiSir抱歉,我的错,我有点误解了这个问题:)@CodeiSir我的观点是,一般来说,您可以绑定/取消绑定contextmenu。你说得对:)Np,在我这方面,我还是学到了一些关于jQuery的新知识,谢谢;)如果是这样的话,jQuery似乎将两者都删除。但是如果这里没有处理程序,您是如何测试它的?@CodeiSir抱歉,我的错,我有点误解了这个问题:)@CodeiSir我的观点是,一般来说,您可以绑定/取消绑定contextmenu。你说得对:)Np,在我这方面,我还是学到了一些关于jQuery的新知识,谢谢;)