Перепривязка функций к динамическому контенту с использованием jQuery и AJAX - PullRequest
0 голосов
/ 03 февраля 2009

Я нахожусь в процессе создания внутренней административной панели для сайта, и у меня возникла проблема с использованием кода jQuery и AJAX для создания страницы.

При загрузке я привязываю действия к определенным полям таблицы, позволяя пользователям добавлять или удалять цвет или размер. Когда они отправляют форму, я очищаю таблицу и использую AJAX для создания новой, затем помещаю новую таблицу в форму.

К сожалению, на новую форму (как я и ожидал) не влияет функция $ (document) .ready. Мне интересно, есть ли способ повторного вызова функции document.ready, чтобы связать действия с новыми элементами на странице, или, в качестве альтернативы, для вызова функции jQuery без прохождения функции document.ready.

Я мог бы переписать функцию jQuery в vanilla javascript и вызвать ее таким образом, но я бы предпочел повторно использовать код jQuery, если это вообще возможно.

Я нашел кое-что о том, как это сделать, используя ASP.NET и UpdatePanels, но этот сайт на PHP и использует базовый AJAX-запрос для вставки в базу данных, повторного получения результатов, а затем построения таблицы результатов.

Есть идеи?

Ответы [ 2 ]

6 голосов
/ 03 февраля 2009

Вы пробовали использовать живые события ? Это только для 1,3.

Для предыдущих версий вы можете использовать плагин live query . При этом вы можете запускать прослушиватели match и unmatch (запускать код при совпадении). Вы также можете форсировать оценку привязок с помощью метода livequery.run.

Обновление:

Для тех, кто находит это сейчас, метод live устарел с 1.7. В Live были некоторые серьезные проблемы, поэтому его заменили на более мощную функцию: on . Даже если вы еще не используете 1.7, вам следует хотя бы рассмотреть возможность использования делегата (jquery 1.4.2), поскольку в режиме реального времени существуют жесткие ограничения

1 голос
/ 03 февраля 2009

живые события кажутся лучшим ответом; но если нет, вам следует упростить функцию $(document).ready(), чтобы она вызывала функцию инициализации. позже, после загрузки содержимого AJAX, вы просто вызываете его снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...