AJAX在调用时嵌套内容

时间:2017-07-31 13:56:02

标签: javascript jquery html css ajax

我有我的网站,http://www.yokaproject.com/,我决定清理它,我仍然在这个过程中如果你看到我有错误,我没有完成,但我感谢任何评论。顶部的导航栏显示锚点标签,点击并将jquery加载到div#container中。我的问题是每次呼叫都加倍并嵌套越来越多的内容,只需连续两次点击艺术。自上周一以来我一直在这,所以任何帮助表示赞赏。这是我的功能

$('.header a').on('click', ajaxLoad);

function ajaxLoad(e) {
    e.preventDefault();
    var url = $(this).attr("href");
    var that = $(this);
    that.off('click'); // remove handler
    $.ajax({
      url: url,
      dataType: "html",
      type: "GET",
      cache: false
    }).done(function(data){
        $("#container").html(data);
    });
};

如果你想更好地了解html和css,你可以访问我的网站。一旦它变大,我打算将它放在github上,但现在它没有必要。

  • 您现在可以在我的网站上查看完整代码

2 个答案:

答案 0 :(得分:0)

that.on('click', ajaxLoad); // add handler back after ajax

每次ajax响应到来时,这行代码都会重新附加click处理程序。每次单击that,您都会创建一个ajax请求。

答案 1 :(得分:0)

你的错误是: 在always函数中,您再次在回调中调用ajaxLoad函数!所以它多次呼叫。请从您的代码中删除该行。