javascript - 基于 AJAX 的页面需要重复的 JavaScript 操作

标签 javascript jquery ajax

我正在开发一个使用 JQuery 布局并仅加载网站部分(如 Gmail)的应用程序。每次我使用 JQuery 加载“面板”时,我都必须替换一些链接以使其与面板一起使用(即,在面板中加载此链接内容,而不是在整个页面中)。是这样的吗:

function changeMainPane(href) {
    $("#screen").load(href);
    $("#screen a.ajax-page").click(function () {return
        changeMainPane($(this).attr("href"))
    });
}

这是一个非常简化的 changeMainPane 函数,我的有数十个 $("#screen ...").click() 调用来集成新的部分HTML 插入页面。

问题是:有没有更好的方法来做到这一点?像这样的东西:

$("#screen").ready(function() {
    // All my html setups
}

或者类似“用户总是点击链接,检查是否有ajax页面类并调用此函数”,而不必独立初始化每个链接。

最佳答案

您可以查看delegate方法。可以为要重新加载主面板的所有链接的公共(public)父元素注册委托(delegate)方法。它可以是 document 对象或较低级别的元素,例如 "body" 或另一个 div,例如 "div.mylinks"

$(document).delegate("a.ajax-page", "click", function(){
    changeMainPane($(this).attr("href"))
})

关于javascript - 基于 AJAX 的页面需要重复的 JavaScript 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6775246/

相关文章:

ruby-on-rails - Rails InvalidCrossOriginRequest

javascript - 对 Rails 4 如何使用 Paperclip 处理 AJAX 文件上传感到困惑

php - Wordpress 表在 AJAX/PHP 后不会更新(即使有 200 ok 响应)

jquery - 为什么这个jquery不会触发.ajax()请求?

php - Ajax 调用后 Javascript 不执行

javascript - 我可以在代码中使用速记 if else 语句吗

javascript - 解析错误 : syntax error, 文件意外结尾 WordPress 主题

jquery - 检查 :contains on . Load() 的响应文本

java - 无法从 JavaScript 调用 JNLP 部署的小程序代码

javascript - 正则表达式:即使有多个相同的匹配项,如何只返回一次匹配项?