2015-10-01 5 views
0

У нас есть плагин WordPress, который динамически - через вызовы AJAX - загружает пользовательский контент (html) на страницу. Тем не менее, тема WordPress и другие разработчики плагинов все чаще обрабатывают (анимацию и т. Д.) Элементы, используя комбинацию javascript и CSS, которые существуют в DOM на document.ready().Содержимое связывания, загружаемое через AJAX

У нас нет контроля над тем, что они делают или как они это делают. Если бы мы это сделали, мы бы настаивали на использовании делегирования событий .on() и .trigger() и упаковки вещей в функциях.

Есть ли что-то, что МЫ можем сделать, это гарантирует, что весь контент, введенный после document.ready(), будет правильно привязан к кликам, анимации и т. Д.?

+0

Вам нужно либо использовать плагин, которые полагаются на делегированных событиях (например, '$ element.on («щелчок»,«.Селекторного», fn) ') или повторно инициализировать любые плагины на вновь добавленном контенте после каждого вызова AJAX. –

+0

Можете ли вы попробовать с помощью функции делегата jquery, я не уверен, но документальный документ подскажет, что он будет работать: http://api.jquery.com/delegate/. Вчера я столкнулся с подобной проблемой. Когда я использовал живой метод, он был исправлен. Но я узнал, что его лишили, они предложили использовать делегата. Пожалуйста, попробуйте оба и сообщите нам, сработало или нет. –

ответ

0

В зависимости от вашей версии jquery вы можете обрабатывать делегированные события (события для элементов, добавленные после первого вызова метода «on») с «делегатом» (для jquery < 1.7) или «on» (для jquery> = 1.7).

Вы должны использовать эту форму, хотя:

$(".containerElement").on('click' , '.clickableElement', function(e){ 
    //Do stuff 
}); 

функция делегат имеет те же аргументы.

Более подробная информация о событиях и делегации событий на:.

http://api.jquery.com/on/

Смежные вопросы