1

特定のアクションのアンカー タグを Shift キーを押しながらクリックするだけです。問題は、ブラウザで URL を Shift キーを押しながらクリックすると、リンクが新しいウィンドウで開くことです。したがって、当然 を使用event.preventDefault()しますが、この場合、どのブラウザでもまったく機能しないようです。どんな助けでも大歓迎です!

ここにjsfiddleがあります:

http://jsfiddle.net/zZea9/

コードは次のとおりです。

<a href="#" class="edit">shift-click here</a>

<script>

$('.edit').click(function (e) {
    if (e.shiftKey) {
        e.preventDefault();
        alert('you shift-clicked');
    }
});

<script>
4

4 に答える 4

2

jsfiddle で jQuery を実行していません。これが含まれたら、最初にデフォルトを防止し、次にシフト キーを確認して必要なコードを実行する必要があります。

DOM をバブリングするイベントを実際に停止するつもりでない限り、stopPropogation を避けるようにしてください。しかし、この例では、これはあなたが望んでいるようには見えません。

ここを見てください: http://jsfiddle.net/zZea9/3/

$('.edit').click(function (e) {
    e.preventDefault();
    if (e.shiftKey) {
        alert('you shift-clicked');
    }
});

そして preventDefault の詳細: event.preventDefault() vs. return false

于 2013-02-18T23:20:12.393 に答える
0

必要に応じて機能するjQueryコードを次に示します。

$('.edit').click(function(e) {
    if (e.shiftKey) {
        alert("shift+click");
        e.preventDefault();
    } 
});

$('.edit').click(function(e) {
    e.stopPropagation();
    e.preventDefault();
});
于 2013-02-18T22:54:59.087 に答える
0

他の質問を削除したため:「完全なコード」でデフォルトが妨げられていない理由は簡単です:

SCRIPT1006: 予期される ')'
_display、131 行目の文字 5

常にコンソールにエラーがないか確認してください。これらは、コードが機能しない最大の理由です。

この場合、関数呼び出し)を閉じるのを忘れています。click()

于 2013-02-19T00:07:22.677 に答える
0

jQuery が含まれていないため、クリック ハンドラーが呼び出されません。

HTML

<a href="#" class="edit">click here</a>

JS

$('.edit').click(function(e) {
    if (e.shiftKey) {
        alert("shift+click")
    } 
});

http://jsfiddle.net/fJHug/

于 2013-02-18T22:53:53.173 に答える