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

Posted

技术标签:

【中文标题】如何向禁用右键单击的 jQuery 添加异常?【英文标题】:How to add an exception to a jQuery that disables right-click? 【发布时间】:2016-08-30 11:03:00 【问题描述】:

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

我会继续尝试,因为我没有得到任何答案。

【问题讨论】:

【参考方案1】:

阅读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 添加异常?的主要内容,如果未能解决你的问题,请参考以下文章

使用 JavaScript 如何禁用右键单击或单击滚动条时如何在右键单击窗口中删除检查元素选项

如何禁用对 IFRAME 的右键单击

jQuery 在第二次单击时删除类并在第二次单击时禁用悬停

如何通过单击按钮禁用 JQuery 功能,但默认保持打开状态?

如何完全禁用任何鼠标单击

禁用右键单击时如何检查chrome中的元素?