У 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"))
}
});
Якщо вам потрібно, щоб подія продовжувала бути прив'язаною і після її запуску, вам, напевно, потрібно буде поглянути на щось подібне обдурити обмежити страти.