我正在使用 Mousetrap javascript 库,并且想要捕获特定元素的输入。
场景是我有一个用于用户名和密码的文本框,KnockoutJS 绑定到该文本框,然后当按下按钮时,发出 ajax 请求以登录用户。现在由于没有表单并且它不是真正的按钮,它是 Jquery UI 变成按钮的锚点,我想知道是否有一些简单的方法可以让捕鼠器绑定到元素而不是文档级别。
因此,例如一个普通的捕鼠器绑定将是:
Mousetrap.bind('enter', function(event) { CallSomeAjaxMethod(); });
现在它将检查页面上的任何输入键(文本框元素之外),然后根据它做一些事情。现在的问题是,在这种情况下,我希望仅在特定元素范围内执行此事件时才能捕获该事件。
因此,例如,我想做这样的事情:
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,如果可能的话,我想在这里重新使用它。