我正在开发一个过去由一些学生工作的项目,因此代码质量不如它应该的那么好。我正在尝试启用用户右键单击时出现的上下文菜单,但它不会发生。
链接:Click here to visit the project
我尝试过以下任何应该反转任何preventDefault()函数,但它不会起作用。解决这个问题应该很简单,但不知何故上下文菜单不会显示。有什么想法吗?
$(window).bind("contextmenu", function () {
return true;
});
我无法找到首先禁用contextmenu的原因,因此也就是这个解决方案。我试过用' body'同样,它也不起作用。
答案 0 :(得分:4)
document.oncontextmenu = null;
足以杀死它(在这种情况下),但请确保在调用该脚本后调用它:
您也可以从正文中删除此代码(位于顶部):
<script type="text/javascript">
document.oncontextmenu = function(e){
var t = e || window.event;
var elm = t.target || t.srcElement;
if(elm.nodeName == "A" || elm.type == 'text' || elm.type == 'password')
return true;
return false;
}
</script>
答案 1 :(得分:0)
您可以使用unbind
Docs:
强大且可扩展的应用程序通常需要两个参数 版本因为这个原因:
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 );