Używam biblioteki javascript Mousetrap i chcę przechwytywać dane wejściowe dla określonego elementu.Korzystanie z pułapki na myszy na konkretnym elemencie?
Scenariusz: Mam pole tekstowe dla nazwy użytkownika i hasła, z którymi łączy się KnockoutJS, a następnie po naciśnięciu przycisku wykonywane jest żądanie ajax w celu zalogowania użytkownika. Teraz, gdy nie ma formy, a nie jest to prawdziwy przycisk, który Jquery UI zamienia się w przycisk, zastanawiałem się, czy istnieje prosty sposób, aby pułapka na myszy została powiązana z elementem, a nie na poziomie dokumentu.
Tak na przykład normalne wiązania pułapka byłoby:
Mousetrap.bind('enter', function(event) { CallSomeAjaxMethod(); });
Teraz będzie sprawdzał każdy wprowadzić naciśnij klawisz na stronie (na zewnątrz elementu tekstowego), a następnie zrobić coś w oparciu o niego. Teraz problem polega na tym, że chcę móc TYLKO przechwycić to zdarzenie, gdy tylko zostanie ono wykonane w ramach określonego elementu.
Tak na przykład będę chciał coś zrobić dużej litery:
var element = document.getElementById("some-element");
Mousetrap.bind('enter', element, function(event) { CallSomeAjaxMethod(); });
czy może bardziej płynnie jak:
Mousetrap.bind('enter', function(event) { CallSomeAjaxMethod(); }).on(element);
Czy istnieje jakiś sposób, aby to zrobić? Jedynym sposobem, w jaki mogę to zrobić (za pomocą Mousetrap) jest obecnie powiązanie tego zakresu dokumentu i po prostu spróbuj uzyskać element, na którym zostało ono podniesione, jeśli jest to możliwe.
Wiem, że możesz robić takie rzeczy z Jquery lub vanilla js, jednak ponieważ mam już załadowany Mousetrap, chciałbym go użyć tutaj, jeśli to możliwe.
Uczyniłem tę nową odpowiedź, dziękuję za aktualizację pytania: – Grofit
Jeśli nazwałem MouseTrap (element) .bind ("alt + h" , function (event) {Something();}); czy powinienem oczekiwać MouseTrap (element) .unbind ("alt + h"), aby się odłączyć? W tej chwili po prostu otrzymuję więcej wiązań (używam MouseTrap z Aurelia i wiążące/niezwiązane klucze za pomocą Aurelia bind/unbind events, które są uruchamiane, gdy widok jest wyświetlany/usuwany.) – Phil
@Craig Jak to osiągnąć w kanciastym 2? –