эффекты javascript не работают в ajax ответить - PullRequest
3 голосов
/ 27 ноября 2011

Я новичок в AJAX. Я много искал в Интернете, но получил только основные шаги AJAX. Сейчас я пишу коды с использованием AJAX, но часто сталкиваюсь с общей проблемой.

Когда я помещаю возвращаемый текст в определенный идентификатор HTML-страницы, эффекты Javascript не работают. CSS работает нормально, но не работают эффекты Javascript, такие как сортировка таблиц, эффекты jQuery или любые другие эффекты. Я знаю, что здесь не хватает какой-то концепции. Но не получил никакого эффективного ответа.

Пожалуйста, предложите мне, что мне делать? И что за концепция стоит за этим ...

Ответы [ 2 ]

3 голосов
/ 27 ноября 2011

Новый HTML, который вы добавляете в DOM (страницу), не существовал, когда ваш jquery запускался в первый раз и связывал события с элементами на странице.Вы, вероятно, используете $ ("что-то"). Click (...) или .bind ("click", ...).Вместо них используйте функцию делегата из jquery.Делегат, как правило, более гибкий и быстрый, чем живой.Например, вы не можете остановить Propagation в «живой» привязке.

Jquery Delegate

Почему Делегат лучше Live

Вот еще один SO ответ , который объясняет преимущества делегата

0 голосов
/ 27 ноября 2011

Скорее всего, происходит то, что ваши события становятся несвязанными, потому что вы обновляете DOM новыми элементами.Самое простое решение - использовать метод live для привязки к событиям: http://api.jquery.com/live/

Или вы можете просто так же просто привязать события к элементам после вставки в DOM.

РЕДАКТИРОВАТЬ

Как указывает пользователь kasdega, другой альтернативой является использование делегата: http://api.jquery.com/delegate/ Делегат работает, используя связанные корневые элементы в качестве контекста дляперепривязать события к элементам DOM, которые могут появиться в будущем.

...