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