Альтернатива JQuery .die (). Live () в ajaxed контенте? - PullRequest
0 голосов
/ 27 декабря 2011

У меня есть форма, в которой ajaxed, и в этой форме он генерирует новые входы, и эти новые входы имеют события, прикрепленные к ним .live() в исходной форме ajaxed.

Итак, у меня возникает проблема, когда я закрываю эту ajaxed форму, а затем снова открываю ее без обновления: у меня есть 2 живых события, связанных с каждым отдельным элементом, который должен иметь только 1 живое событие.

Я вижу, как обойти это предшествует каждому .live() с .die(), чтобы очистить все ранее прикрепленные live()?

Мне интересно, есть ли более чистый или более подходящий способ справиться с этим?

1 Ответ

4 голосов
/ 27 декабря 2011

Вы знаете, как работает .live(), верно? Вы называете это один раз , и обработчик событий присоединяется к документу и обрабатывает событие для всех элементов, соответствующих этому селектору, , даже если они будут добавлены в будущем . Вы не звоните .live() каждый раз, когда добавляете элементы; если вы используете его правильно, вам нужно вызвать .die(), только если вы хотите полностью прекратить обработку этого конкретного события или хотите изменить / заменить обработчик.

Короткая версия: более чистая, более подходящая альтернатива - перестать звонить .live(), когда вам это не нужно.

...