Я использую библиотеку javascript Mousetrap и хочу захватить ввод на конкретном элементе.
В сценарии есть текстовое поле для имени пользователя и пароля, к которому 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, я хотел бы использовать его здесь, если это возможно.