0

onclick イベントを使用して、div 全体をナビゲート可能なリンクにしています。これは、新しいタブでターゲットを開くために ctrl + クリックまたは中マウス クリックを使用するまでは、うまく機能します。新しいタブが実際に開くことがわかりましたが、現在のタブも開きます。

ここにあるボックスの 1 つを Ctrl キーを押しながらクリックすることで、私が意味することを確認してください: http://mw.modhistory.com/download-1

常に新しいタブに強制的に移動することで、通常のブラウジング機能を中断したくありません...ユーザーにはここでオプションが必要です。しかし、繰り返し「戻る」必要なく、これらのリンクを新しいタブですばやく開くことができるようにしたいと考えています。

preventDefault() を使用するという素晴らしいアイデアを思いついたのですが、それは私が考えていたこととは逆のことをしてしまい、新しいタブを開く機能を完全に妨げてしまいました (それが何であるかを本当に考えてみると、これは理にかなっています)。するつもりでした。)

何か案は?ありがとう!

――フリッグ

4

1 に答える 1

0

イベントリスナーがルーティング/割り当て機能にイベントを送信しているか、この機能のために実装しようとしているクリックイベントがそれほど多くないことを想定しています。

いずれにせよ、次のようなことができます。

// Assuming we already know what the purpose of the click was, and its target
function (e) {
    if (!!e.ctrlKey) { /* CTRL was held during mouse-click */ }
    else { /* not held */ }
}

マウスボタンに関しては、かなりめちゃくちゃです。

次のいずれかを使用しても問題ありません。

e.which /* 1-based: middle-button is #2 */

また

e.button /* 0-based: middle-button is #1 */

どのボタンがどれであるかを理解するための過去のサポートは、何年にもわたって本当に悪かったことに注意してください。抽象化を行うライブラリがある場合は、それを使用してください。そうしないと、新しいブラウザを使用している人々にこの機能を提供したり、 which と button の以前の値をコンパイルしたりする以外に、ブラウザのバージョンを解析することになりますが、これは決して良いことではありません。

于 2011-10-18T20:37:47.873 に答える