JQuery альтернатива.die(). Live() в ajaxed контенте?
У меня есть форма, в которой есть ajaxed, и в этой форме он генерирует новые входы, и эти новые входы имеют события, прикрепленные к ним .live()
в начальной форме ajaxed.
Итак, проблема у меня возникает, когда я закрываю эту ajaxed форму и затем снова открываю ее без обновления: у меня есть 2 живых события, связанных с каждым отдельным элементом, который должен иметь только 1 живое событие.
То, как я это вижу, предшествует каждому .live()
с .die()
очистить все ранее прикрепленные live()
?
Мне интересно, есть ли более чистый или более подходящий способ справиться с этим?
1 ответ
Вы знаете, как .live()
работает, верно? Вы вызываете его один раз, и обработчик событий присоединяется к документу и обрабатывает событие для всех элементов, соответствующих этому селектору, даже если они будут добавлены в будущем. Ты не звонишь .live()
каждый раз, когда вы добавляете элементы; если вы используете его правильно, вам нужно только позвонить .die()
если вы хотите полностью прекратить обработку этого конкретного события или хотите изменить / заменить обработчик.
Короткая версия: более чистая, более подходящая альтернатива - бросить вызов .live()
когда тебе не нужно