2011-01-20 29 views
11

我希望我的应用程序能够通过我的应用程序JQuery脚本来评估所有AJAX加载的内容,这与正常加载的内容相同。例如JQuery的通过扫描进行选择的AJAX加载的内容,比如“模式框链接”等在ajax加载的内容上重新运行应用程序的Javascript

我所有的JavaScript是在正常的document.ready,这对于普通的HTTP页面加载正常工作:

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

我想使用类似.ajaxComplete的东西来重新运行document.ready中包含的所有内容,以评估新加载的jQuery选择器的AJAX内容。

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

是否有一些代码可以放在.ajaxComplete中?

希望这是有道理的,请让我知道如果它不,我会编辑问题的详细信息。

+0

你能解释更多关于你在找什么吗?我觉得我的答案仍然缺少一些东西,我想确保你找到你想要的答案。 – jmort253 2011-01-20 02:13:18

+0

@ jmort253 - 感谢您的帮助,亨特的回答几乎是我想要了解的。 – 2011-01-20 02:44:46

回答

12

你可以封装在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 
}); 
1

你需要做的是在一个函数,而不是匿名定义代码。匿名函数不可重用,但如果您编写函数,那么该函数可以绑定到多个事件。

相关问题