2012-04-09 2 views
10

Я хочу сделать свой вопрос понятным. Пожалуйста, не путайте его с определением нажатия клавиши. Я не хочу, чтобы пользователь нажал любую клавишу. Напротив, я хочу запустить скрипт, который запускает событие нажатия клавиши Escape. Пожалуйста, помогите!Invoke Escape key press event by jquery

ответ

24

Вы можете использовать $.Event() создать объект Event, содержащий KeyDown событие с KEYCODE 27 (который должен быть Esc), как:

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

См this working demo и docs at jquery.com

Также обратите внимание, что, как заявил Кристофер, это может не работать во всех браузерах и средах, как это можно было бы считать shady Поведение, которое может использовать, может быть использовано злонамеренно - так же, как запуск события click на <a> с внешним href will not happen. Я успешно протестировал это (Esc) в Chrome, Safari, Opera, FF & IE9.

+0

Это лучшее решение! – Khateeb321

7

Из соображений безопасности некоторые браузеры (не уверены, что все) не позволяют вам запускать события keydown-events. Пожалуйста, обратитесь к this article за дополнительной информацией.

Цитата из статьи:

Safari/Chrome делает KEYCODE и charCode свойства только для чтения, так это не представляется возможным моделировать конкретные клавиши при стрельбе событий вручную.

+0

Thanks Christofer – Lakshay