如何向禁用右键单击的 jQuery 添加异常?

How to add an exception to a jQuery that disables right-click?

我试图在整个页面中禁用右键单击,但要复制的两个元素除外。我知道每次禁用右键单击听起来都是个坏主意,但在这种情况下对我来说很有意义。我找到了一些关于如何取消绑定元素以重新启用使用 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
});