Что вам нужно сделать, это определить свой код в функции, а не анонимно. Анонимные функции не могут использоваться повторно, но если вы пишете функцию, то эта функция может быть связана с несколькими событиями.

ел бы, чтобы весь загруженный AJAX-контент в моем приложении оценивался сценарием JQuery моего приложения, так же, как и обычный загружаемый контент. например JQuery просматривает загруженный AJAX-контент для селекторов, таких как «модальные ссылки» и т. Д.

Весь мой JavaScript находится в обычном document.ready, который отлично работает для обычных страниц, загружаемых по HTTP:

$(document).ready(function(){
  // my apps javascript
});

Я хотел бы использовать что-то вроде .ajaxComplete для запуска перезапуска всего, что содержится в document.ready, чтобы оценить вновь загруженный контент AJAX для селекторов jquery.

$(document).ajaxComplete(function(){
  // Re-run all my apps javascript
})

Есть ли какой-нибудь код, который я могу вставить в .ajaxComplete, чтобы сделать это?

Надеюсь, что это имеет смысл, пожалуйста, дайте мне знать, если это не так, и я отредактирую детали вопроса.

 jmort25320 янв. 2011 г., 03:13
Можете ли вы объяснить больше о том, что вы ищете? Я чувствую, что в моем ответе еще что-то отсутствует, и я хочу убедиться, что вы найдете ответы, которые ищете.
 David Barlow20 янв. 2011 г., 03:44
@ jmort253 - Спасибо за вашу помощь, ответ охотника - это то, что я хотел понять.

Ответы на вопрос(2)

Решение Вопроса

document.ready в функцию и просто вызвать эту функцию снова, чтобы повторно связать

или же...

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

пример использованияlive(): http://api.jquery.com/live/

$('.clickme').live('click', function() {
    //all elements that exist now and elements added later
    //with this class have this click event attached
});

пример использованияdelegate(): http://api.jquery.com/delegate/

$("table").delegate("td", "hover", function(){
    //all current and future td elements in all current tables
    //have this hover event attached
});
 David Barlow20 янв. 2011 г., 03:43
Спасибо охотнику, это поставило меня на правильный путь.
 Nazariy10 мар. 2012 г., 12:18
Начиная с jQuery 1.7, метод .live () устарел. Используйте .on (), чтобы прикрепить обработчики событий. Пользователи более старых версий jQuery должны использовать .delegate () вместо .live ().

это определить свой код в функции, а не анонимно. Анонимные функции не могут использоваться повторно, но если вы пишете функцию, то эта функция может быть связана с несколькими событиями.

Ваш ответ на вопрос