jQuery只允许在某些元素上使用contextmenu

时间:2012-12-04 05:41:33

标签: jquery contextmenu

// this works

$(document).on('contextmenu', function() {
    return false;
});
// without the code above, this works too

$(document).on('contextmenu', '#special', function() {
    alert('#special right clicked');
});

如何组合这两段代码,以便我可以在整个文档上禁用上下文菜单,但id为#special的文件除外。

1 个答案:

答案 0 :(得分:11)

$(document).on('contextmenu', function(e) {
    if (!$(e.target).is("#special"))
       return false;

    alert('#special right clicked');
    // you may want e.preventDefault() here
});

使用.is() method可以测试被点击的元素是否与任何选择器匹配,这基本上是您在幕后进行的原始委托.on()调用,但是如果您正在检查元素ID说:

会更有效率
if (e.target.id != "special")
    return false;