特定の要素のクリックイベントをリッスンし、メタキーが保持されているかどうかを念頭に置いて、それをリンク要素にディスパッチしたいと思います。
例:要素のテーブルがあるとしましょう。ユーザーが行をクリックしたときにリンクをたどりたいのですが、ユーザーが⌘</kbd> /ctrl key pressed.
簡単そうに見えますが、これは難しいことがわかりました...(成功しなかったので!)
よろしくお願いします!
特定の要素のクリックイベントをリッスンし、メタキーが保持されているかどうかを念頭に置いて、それをリンク要素にディスパッチしたいと思います。
例:要素のテーブルがあるとしましょう。ユーザーが行をクリックしたときにリンクをたどりたいのですが、ユーザーが⌘</kbd> /ctrl key pressed.
簡単そうに見えますが、これは難しいことがわかりました...(成功しなかったので!)
よろしくお願いします!
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 イベントに関するこの完全なリファレンスも役に立つかもしれません:)