我试图在整个页面中禁用右键单击,但要复制的两个元素除外。我知道禁用右键单击听起来每次都是个坏主意,但在这种情况下对我来说是有意义的。我找到了一些有关如何取消绑定(bind)元素以重新启用使用 PreventDefault(); 阻止的行为的信息。并尝试使用 return: true 来处理异常,但没有成功。没有触发器可以重新启用右键单击功能,应该一次性全部启用。
$(function() {
$(document).ready(function() {
$(document).bind('contextmenu', function(e) {
e.preventDefault();
});
});
});
我也尝试过这个:
var disablerightclick = function(e) {
e.preventDefault();
}
$(document).ready(function() {
$(document).bind('contextmenu', disablerightclick);
});
//]]>
每次都有效。但它不允许我直接在下面解绑任何其他内容,而且这样做是有道理的,我会尝试一些东西并更新它是否有效。
这是我之前提到的更新。这不起作用...
var disablerightclick = function(e) {
return false;
}
$(document).ready(function() {
$('img').mousedown(function(){return false});
$('body').bind('contextmenu', disablerightclick);
});
$('#AnyObject').hover(function() {
$('body').unbind('contextmenu', disablerightclick);
});
我会继续尝试,因为我没有得到任何答案。
最佳答案
刚刚阅读this thread
使用此代码:
$(document).on('contextmenu', function(e) {
if (!$(e.target).is("#special"))
return false;
alert('#special right clicked');
// you may want e.preventDefault() here
});
关于jquery - 如何向 jQuery 添加禁用右键单击的异常(exception)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37037367/