Воспроизведите ярлыки Windows Gmail
Я смотрю, чтобы воспроизвести поведение ярлыков Gmail в моем приложении HTML. Если вы нажмете? На клавиатуре Shift+/ (или Shift+, на клавиатуре azerty) появляется скрытый div со списком ярлыков. (Если вы находитесь на входе, ключевое событие как не перехвачено).
Я ищу, чтобы правильно перехватить keydown с помощью jquery, чтобы показать div. В моем случае, keydown перехватывается на всех компонентах моей страницы.
Как отключить keyevent на других компонентах HTML? Я пробовал с e.stopPropagation();
но это не имеет эффекта.
Изменить: я нашел этот код, но не функционально в IE7
$("input, textarea").keydown(function (e) {
e.stopPropagation();
});
function close_help(){
$("#help:even").addClass("aou");
}
function doKeyDown(e) {
if (e.keyCode == 188) {
$("#help:even").removeClass("aou");
}
}
var input_ = document.getElementsByTagName("input").elements;
if ($.browser.msie && $.browser.version < 9) {
window.attachEvent("keydown", doKeyDown, true);
}
else {
window.addEventListener("keydown", doKeyDown, false);
}
input_.removeEventListener("keydown");
2 ответа
Вам придется проверить
e.target.type
чтобы увидеть, если вы находитесь на входе или другой части страницы.
Чтобы остановить распространение события, необходимо проверить три функции.
Последнее необходимо, когда у вас есть несколько событий на одном уровне DOM, который вы хотите обработать.