2012-04-09 7 views

Odpowiedz

24

Można użyć $.Event() stworzyć obiekt Event zawierający keyDown z keyCode 27 (który powinien być Esc), jak:

var esc = $.Event("keydown", { keyCode: 27 }); 
$("body").trigger(esc); // change body to the element where you'd like to execute the escape key press. 

Zobacz this working demo i docs at jquery.com

Należy również zauważyć, że, jak stwierdził Christofer, może to nie działać we wszystkich przeglądarkach i środowiskach, ponieważ może być uznane za shady Zachowanie, które może być może być używane w niebezpieczny sposób - podobnie jak wyzwalanie zdarzenia kliknięcia na <a> z zewnętrznym hrefem will not happen. Z powodzeniem przetestowałem to (Esc) w Chrome, Safari, Opera, FF & IE9.

+0

To jest najlepsze rozwiązanie do tej pory! – Khateeb321

7

Ze względów bezpieczeństwa niektóre przeglądarki (nie wiem, czy wszystkie), zapobiegają wystrzeliwaniu zdarzeń kluczowych. Aby uzyskać więcej informacji, patrz: this article.

Cytat z artykułu:

Safari/Chrome sprawia właściwości keyCode i charCode tylko do odczytu, więc nie jest możliwe, aby symulować konkretne klawisze podczas ręcznego zwalniania wydarzenia.

+0

Dzięki Christofer – Lakshay