【问题标题】:AJAX nesting content on call随叫随到的 AJAX 嵌套内容
【发布时间】:2017-08-01 22:36:47
【问题描述】:

我有我的网站,http://www.yokaproject.com/,我决定清理它,我仍在处理中,所以如果你发现我有错误,我还没有完成,但我感谢任何 cmets。顶部的导航显示锚标记以单击并将 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上,但现在没有必要。

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

【问题讨论】:

  • always函数中,你又在回调中调用ajaxLoad函数了!
  • 是的,修复了它
  • 修复了什么?我的建议还是第一个答案?
  • 两者,我只需要删除那段代码就可以了,谢谢
  • 我写了这个作为答案。请以 UP 票接受它。提前致谢。

标签: javascript jquery html css ajax


【解决方案1】:
that.on('click', ajaxLoad); // add handler back after ajax

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

【讨论】:

  • 是的,一旦 7 分钟的时间结束,我会接受这个答案,谢谢你的回答
  • 我不得不不接受这个答案,当您从艺术选项卡导航到任何其他选项卡然后返回艺术选项卡时,问题仍然存在
【解决方案2】:

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

【讨论】:

  • 你现在可以查看我的网站了,上面的代码完全是最新的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-01
  • 1970-01-01
  • 2017-04-28
  • 2015-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多