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

标签 javascript jquery

我希望我的应用程序中的所有 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 中的所有内容封装到一个函数中,然后再次调用该函数以重新绑定(bind)

或者...

更好的方法是利用 live()delegate() jQuery 方法,以便与这些选择器匹配的所有当前和 future 元素都将绑定(bind)到这些事件也是如此。

使用 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
});

关于javascript - 在 ajax 加载的内容上重新运行应用程序 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4742835/

相关文章:

javascript - JS 按特定字符串属性对对象数组进行排序(不是升序或降序)

Javascript - 通过正则表达式分割字符串 {{...}}

javascript - Select2 自定义渲染

jquery - 如何使用 JSON 和 jQuery 将文件发送到服务器

javascript - 使用$(window).scroll函数跳转到页面上的div

javascript - jQuery - 使用自定义属性查找控件

javascript - 单击模态内的 div 时隐藏 Bootstrap 模态

javascript - 如何从js对象数组刷新Datatable数据

javascript - 在客户端完成并行、异步调用后执行操作

javascript - 优雅地将方法重新附加到 Web Worker 中的对象?