2

特定の要素のクリックイベントをリッスンし、メタキーが保持されているかどうかを念頭に置いて、それをリンク要素にディスパッチしたいと思います。

例:要素のテーブルがあるとしましょう。ユーザーが行をクリックしたときにリンクをたどりたいのですが、ユーザーが⌘</kbd> /ctrl key pressed.

簡単そうに見えますが、これは難しいことがわかりました...(成功しなかったので!)

よろしくお願いします!

4

1 に答える 1

1

DOM イベント APIは、正当なユーザー アクションからの修飾キーのみを覚えておく必要があると仮定して、必要なものをすべて提供します。

を使用addEventListenerしてイベントをキャッチする場合は、DOMEventハンドラー関数に渡されるインスタンスであるパラメーターを取得し、 dispatchEvent  :)を使用してターゲット要素に再送信します。

実際、DOMEventインスタンスはそのソース環境をカプセル化します。より具体的には、 aは、MouseEvent起動時にどのキーが押されたかを認識しています。


デモ:この JSfiddleのリンクを押しながらクリックしてみてください⌘</kbd> (or ctrl if not on a Mac), for example.

完全なリファレンスとして、使用されているコードは次のとおりです。

var button = document.getElementById('source'),
    target = document.getElementById('target');

function handler(evt) {
    target.dispatchEvent(evt); // that's all the magic it takes
}

button.addEventListener(
    'click', // listen to a click event
    handler,
    false // no capture, i.e. do not catch events before children
);​

DOM イベントに関するこの完全なリファレンスも役に立つかもしれません:)

于 2012-09-16T16:22:15.677 に答える