複雑なナビゲーション UI にとって重要な機能があるため、キーボードでアクセスできるようにしたいと考えています。クリックとフォーカスの両方を使用してハンドラーを作成しています。
$('.mycoolnavbutton').on("click focus", function() {
// do an animated reveal
});
ここに落とし穴があります: 書かれているように、クリック イベントがフォーカス イベントをトリガーするため、Firefox で二重実行 (および不安定な動作) が発生します。すべて (および console.logs) が 2 回実行されます。(Webkit は 1 回だけ実行されます。)
クリックハンドラーをフォーカスに「パイプ」するだけでよいことに気づきました。
$('.mycoolnavbutton').on("click", function(event) {
event.preventDefault();
this.focus();
});
$('.mycoolnavbutton').on("focus", function() {
// do an animated reveal
});
しかし、それは本当に奇妙でエラーが発生しやすいようです。このジレンマに遭遇したのは私が初めてではないと確信しています。標準的な解決策は何ですか?