Я получил следующий код:Проверьте событие уже привязано (KeyUp)
$(function(){
var $name = $('#name'),
$save = $('#save');
function alertName(){
var name = $name.val();
return alert(name);
};
function addSaveEvent(elem){
return elem.bind('click',function(e){e.preventDefault();alertName();});
};
$name.bind('keyup',function(){addSaveEvent($save);});
$(window).load(function(){
$save.bind('click',function(e){e.preventDefault();});
});
});
Что такое функция? Когда страница загружается, кнопка «не» нажата, например. кнопка ничего не делает. Когда изменяется поле ввода «имя», кнопка «становится» кликабельна и вызывает функцию alertName().
В чем проблема? Каждый раз, когда что-то набирается -> каждый раз появляется новая «клавиатура», поэтому, если вы введете «Hello» в поле ввода «name», и вы нажмете на кнопку, функция alertName() будет запущена 5 раз (H E L L O). Если вы удалите это и снова нажмите кнопку, он будет запущен 10 раз (H E L L O [backspace] x5).
Я думаю, что каждый раз, когда запускается событие «keyup», функция addSaveEvent привязывается к кнопке сохранения. Но я не хочу этого, я просто хочу, чтобы он был связан только один раз, а не 5, 10, ... раз.
Как проверить, связано ли событие с элементом? Если нет => bind, если so => нет дополнительной привязки (но также NO unbind)?
Заранее благодарен!
PS: Я проверил следующие вопросы: - How to check if click event is already bound - JQuery - jQuery check if event exists on element
Это о событии «нажмите», а не о «KeyUp» события, и я не понимаю их очень Что ж. :/