Я хочу вызвать функцию только один раз при фокусировке в элементе ввода. Следующий код вызывает функцию в бесконечном цикле.Как вызвать функцию один раз, после фокусировки на входном элементе?
<input type="text" class="dateRangeEducLev">
$(document).on("focusin",".dateRangeEducLev",function(e){
alert("focusIn");
});
Я мог бы изменить событие «OnClick», но это было бы вызывает функцию каждый раз, когда пользователь нажимает на элемент ввода, даже если входной элемент уже выбран. Это нежелательно.
Я пытался решить эту проблему, предотвращая распространение, но он не работает. это код:
$(document).on("focusin",".dateRangeEducLev",function(e){
alert("focusIn");
e.stopPropagation();
});
http://jsfiddle.net/r1b06udo/1/
Любая идея в том, чтобы остановить распространение или ограничить функцию, которая будет вызываться только один раз?
Обновление: Если я использую off() или один(), то перестанет вызывать функцию навсегда до обновления браузера. Другая проблема заключается в том, что если у меня есть более одного элемента с одним классом, функция будет отключена для них.
http://jsfiddle.net/r1b06udo/2/
У меня есть новое обновление. Я выбираю unbind и bind. Если вы увидите, что он будет работать в первом раунде. Но если вы все еще фокусируетесь, они ничего не сделают, но если вы все еще сосредоточитесь на том, что это сработает для угадывания.
использовать одну(), чтобы связать событие .it будет работать только один раз – yugi
Привет Юги, почти нет. Ваша идея работает хорошо. Проблема заключается в том, когда пользователь щелкает элемент ввода и нажимает, функция не будет вызываться. Событие отключено навсегда до обновления браузера. Другая проблема заключается в том, что если у меня есть более одного элемента, «one()» отключит функцию для остальных. Я уточню свой вопрос. – zwitterion
привет @zwitteron .i обновил мой ответ. Работает нормально сейчас. Проверьте это. – yugi