5
//これは機能します

$(document).on('contextmenu', function() {
    false を返します。
});
// 上記のコードがなくても、これも機能します

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

これら 2 つのコードを組み合わせて、ID #special 以外のドキュメント全体でコンテキスト メニューを無効にするにはどうすればよいですか。

4

1 に答える 1

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

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

この.is()メソッドを使用すると、クリックされた要素が任意のセレクターと一致するかどうかをテストできます。これは基本的に、元の委任さ.on()れた呼び出しが舞台裏で行ったことですが、特に要素 ID を確認している場合は、次のように言う方が効率的です。

if (e.target.id != "special")
    return false;
于 2012-12-04T05:48:12.620 に答える