Я действительно смущен и даже не уверен, что искать, чтобы найти ответы. Я получаю несколько вызовов функции javascript. Я не имею смысла для меня.jquery live автоматически увеличивая событие keyup
Вот что делает код.
$('expenses_txt').live(\'keyup\', function() {
$(this).typeWatch({ highlight: true, wait: 500, captureLength: 0, callback: calculate_expenses });
});
«Calculate_expenses» является Java-функция, которая использует JQuery Ajax для вызова страницы PHP, который возвращает данные, которые получает отображается в пролете.
Я использую firebug, чтобы помочь мне отлаживать и в функции Calculate_expenses я поставил «console.log» для отладки при вызове этой функции.
Вот что происходит. У меня только 1 поле ввода в DOM в то время, когда это происходит, когда я нажимаю только одну клавишу, вывод в консоли выдает один отладочный msg, как он должен, когда я снова нажимаю клавишу в том же поле ввода, вывод в консоль удваивается (т. е. функция Calculate_expenses вызывается дважды, но должна была быть вызвана только один раз), когда я снова нажимаю клавишу (всего 3 нажатия клавиш), вывод в консоли выдает 3 вызова функции Calculate_expenses сейчас ..... и так далее. Я не знаю, что здесь происходит. Код мне кажется, что он будет вызывать только функцию Calculate_expenses 1 раз, но при использовании firebug он фактически вызывается снова и снова, когда я этого не хочу.
Любые идеи? Я так использую .live() Если я просто использую событие «keyup», он отлично работает, проблема в том, что мне нужно использовать плагин typeWatch, чтобы задержать вызов ajax до тех пор, пока после ввода текста не закончится и не активируется событие keyup скоро. Причина, по которой я использую live(), состоит в том, что я динамически добавляю элементы в dom, и это единственный способ выяснить, как использовать как typeWatch, так и динамически добавлять элементы в dom, которые необходимо было суммировать ...
Ваши мысли оценены. Благодарю.
Какой метод вы используете для динамического добавления элементов в dom? – user113716
patrick, я принял ваше предложение раньше в другом вопросе, который мне пришлось использовать .clone (true), который решил проблему с тем, что ключ не был скопирован во вновь созданные поля ввода. Проблема возникла, когда я попытался использовать плагин typeWatch ... он работал только в первом поле ввода, добавленные динамически не срабатывали. Я просто как проблема, с которой я столкнулся раньше, чем вы решили с .clone (true), моя единственная проблема - это то, что «keyup» является стандартным, а «typeWatch» - нет. Любые другие мысли? – Ronedog