$ .clone с запросом XHR ajax прерывает события? - PullRequest
0 голосов
/ 24 ноября 2011

Я не уверен, является ли это ошибкой jQuery (с использованием 1.7.1) или она должна быть такой (я не понимаю, почему так будет, но как угодно):

Попробуйте этот jsfiddle out: http://jsfiddle.net/qFLpe/1/

По сути, я могу создать блок HTML, используя JS, привязать к нему события, а затем сохранить его в переменной, используя var clones = $(elem).clone(true, true) для глубокого анализа событий.На первый взгляд, он действует так, как будто работает нормально.Элементы со связанными событиями стираются из DOM, а затем восстанавливаются из переменной.Вы можете щелкнуть по ним, и они запустят связанное событие.

Обновление: похоже, что он просто теряет события при втором вызове $ .html (клоны), независимо от того,XHR или нет ...

НО ... после запуска любого AJAX-запроса ... события больше не связаны?HTML все еще там, но не события.Я не слишком уверен, почему?Как будто событие AJAX каким-то образом сбрасывает клонированные события, которые хранятся в этой переменной ...?

1 Ответ

2 голосов
/ 24 ноября 2011

Используйте $.live, тогда отлично работает.

Не думаю, что это связано с $.get; комментирование приводит к той же неработоспособности, с bind.

См. Последний комментарий на странице документа clone:

[...] но имейте в виду, что такие функции, как .html () отбрасывают данные и события из узлов.

Не уверен насчет первого html с клонами.

...