/ / jQuery запускає дію лише 1 раз, коли клавіша вниз - jquery, html

Дії тригера jQuery тільки 1 раз, коли клавіша вниз - jquery, html

У jQuery ми можемо використовувати "вікно.onkeydown "для активації дії при натисканні клавіші. Але" onkeydown "буде" безперервно "виконувати функцію, призначену нам для тригера. Чи є спосіб, яким ми можемо виконати призначену функцію лише один раз? Дякую!

При натисканні клавіші особливо дратує, коли я роблю щось на зразок:

window.onkeydown = function(e){
if (e.keyCode == 17){
jQuery("<h2/>").appendTo($("#myDiv"))
}
}

У цьому випадку, поки я утримую клавішу Ctrl (keyCode 17), jQuery буде постійно створювати елементи h2 всередині #myDiv, і результат, який я хочу, - це лише 1 h2.

Відповіді:

1 для відповіді № 1

Можливо, ви можете використовувати jQuery один () щоб подія виконувалася один раз і лише один раз. Подія не має зобов’язань після її виникнення:

Метод .one () ідентичний .on (), за винятком того, що обробник для даний елемент і тип події не є зв’язаним після першого виклику.

jQuery(window).one("keydown", function(e) {
if (e.keyCode == 17){
jQuery("<h2/>").appendTo($("#myDiv"))
}
});

Якщо вам потрібно, щоб подія продовжувала бути прив'язаною і після її запуску, вам, напевно, потрібно буде поглянути на щось подібне обдурити обмежити страти.