Mousetrap JavaScript ライブラリを使用しており、特定の要素の入力をキャプチャしたいと考えています。
シナリオは、KnockoutJS がバインドするユーザー名とパスワード用のテキストボックスがあり、ボタンが押されると、ユーザーをログインするための ajax リクエストが行われます。フォームがなく、実際のボタンではないため、Jquery UI がボタンに変わるアンカーであるため、マウストラップをドキュメント レベルではなく要素にバインドする簡単な方法があるかどうか疑問に思っていました。
たとえば、通常のネズミ捕りバインディングは次のようになります。
Mousetrap.bind('enter', function(event) { CallSomeAjaxMethod(); });
これで、ページ (テキスト ボックス要素の外側) で Enter キーが押されたかどうかがチェックされ、それに基づいて何かが実行されます。この場合の問題は、特定の要素の範囲内で実行されるときはいつでも、このイベントのみをキャプチャできるようにしたいということです。
たとえば、次のようなことをしたいと思います。
var element = document.getElementById("some-element");
Mousetrap.bind('enter', element, function(event) { CallSomeAjaxMethod(); });
または、次のようなより流暢な場合があります。
Mousetrap.bind('enter', function(event) { CallSomeAjaxMethod(); }).on(element);
これを行う方法はありますか?現在、(Mousetrap を使用して) それを行うことができる唯一の方法は、このドキュメント スコープ バインディングを使用し、可能であればイベントが発生した要素を取得することです。
Jqueryまたはvanilla jsでこの種のことができることは知っていますが、すでにMousetrapがロードされているので、可能であればここで再利用したいと思います。