Как убить jQuery перед заполнением html, возвращаемым из вызова ajax? - PullRequest
0 голосов
/ 30 ноября 2009

Я использую функцию ajax, которая строит заливку innerHTML диапазона, а затем строит функцию jquery. Когда я в первый раз вызываю функцию jquery, она работает нормально, но если я снова вызвал функцию ajax, функция щелчка jquery вызывается дважды, а если я вызываю ее еще раз, jquery вызывается 3 раза и так далее. Этот метод jquery я использую:

$(".delete_mail").live('click', function() {
                                     $(this).delete_mail();
                                    });

Я пробовал .die до заполнения innerHTML, но это не помогло. Я хочу удалить метод jquery live перед заполнением innerHTML, чтобы он не дублировался.

Пожалуйста, помогите.

1 Ответ

1 голос
/ 30 ноября 2009

Функция .live () привязывает обработчик к событию для всех текущих и будущих соответствующих элементов.

Таким образом, в общем случае вы должны вызывать .live () только один раз, иначе он будет продолжать добавлять новые обработчики.

Попробуйте переместить ваш вызов .live () на событие onload и вызвать его только один раз, обработчик автоматически свяжется с новыми элементами, добавленными с помощью вызова Ajax.

...