Как использовать jquery .delegate () с обернутой функцией на ajaxed контенте? - PullRequest
2 голосов
/ 15 декабря 2010

Предположим, у вас есть страница с именем /start.html, и на этой странице есть упакованная функция, которая вызывается при загрузке тела.

function eatApples() {  
 // some code  
}  
function eatOranges() {  
// some code  
}  
function eatFruit() {  
$(eatApples());
$(eatOranges()); 
}  
// call the eatFruit function on page load
$(eatFruit()); 

Теперь предположим, что у вас также есть страница с именем /end.html, и эта страница содержит ajaxed-контент.Кроме того, вы хотите вызвать eatFruit () для этого ajaxed контента.

Возможно ли это с функциями делегата или live jQuery?http://api.jquery.com/delegate/

1 Ответ

2 голосов
/ 15 декабря 2010

Прежде всего ваш код должен быть

function eatApples() {  
 // some code  
}  
function eatOranges() {  
// some code  
}  
function eatFruit() {  
  eatApples();
  eatOranges(); 
}  
// call the eatFruit function on page load
$(eatFruit);

, если только eatApples и eatOranges не возвращают функции в результате.

Теперь, если end.html вызывается сajax, jquery позволяет выполнять обработчики обратного вызова при загрузке содержимого ajax.

Функция делегата и live используется для управления событиями, возникающими в результате взаимодействия с пользователем.

Если новое содержимое соответствуеткритерии, указанные при использовании делегата или метода live, тогда да, он будет работать с содержимым, загруженным ajax.

Например, если вы установите

$('.aclass').live('click',function(){
   alert('clicked');
});

, то если содержимое загружено изУ ajax есть элемент с классом aclass, при нажатии на который также будет выдано предупреждение.

Если вы сможете предоставить больше информации, вы получите более подробный ответ.

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