在ajax加载的内容上重新运行应用程序Javascript

我希望我的应用程序中的所有AJAX加载内容都由我的应用程序JQuery脚本进行评估,与正常加载的内容相同。 例如,JQuery扫描选择器的AJAX加载内容,如“模态框链接”等。

我的所有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的代码来执行此操作?

希望这是有道理的,如果没有,请告诉我,我会编辑问题详情。

你可以将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 }); 

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