JQuery альтернатива.die(). Live() в ajaxed контенте?

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

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

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

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

1 ответ

Решение

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

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

Другие вопросы по тегам