【问题标题】:trouble with loading a page in jquery via ajax通过ajax在jquery中加载页面的问题
【发布时间】:2011-03-10 21:54:10
【问题描述】:

我正在通过 jquery 加载函数将页面加载到 div 中。实际加载部分很好。代码看起来基本上是这样的:

$("div#loadhere").load("newfile.html?" + new Date().getTime());

在 newfile.html 中,我有一系列 div,并且我有代码(用于测试)在单击 div 时发送警报。那也不错。

问题是这样的:当我将一个页面加载到 div#loadhere 中,然后选择另一个页面加载到同一个 div 中时,警报消息会发生两次。如果我再加载一个页面,它会发生 3 次。

换句话说,jquery(或 DOM)似乎没有意识到之前的负载已经消失。

非常感谢您的任何帮助!

【问题讨论】:

  • 您可以发布发出警报消息的代码吗?
  • 欢迎您,请不要忘记访问stackoverflow.com/faq
  • 您可能多次附加点击事件处理程序。

标签: javascript jquery ajax


【解决方案1】:

如果我没记错的话,你需要使用jQuery unbind来解绑事件。

unbind

这是 stackoverflow 上的 similar question

【讨论】:

    【解决方案2】:

    试试 .delegate() - http://api.jquery.com/delegate/

    您可以将事件处理程序绑定到“body”或类似的顶级 div,并监视针对您所需 div 的事件。文档站点上给出的示例是针对表格的:

    $("table").delegate("td", "hover", function(){
        $(this).toggleClass("hover");
    });
    

    这样可以避免您遇到的多重绑定问题。

    【讨论】:

      猜你喜欢
      • 2023-03-13
      • 2013-01-21
      • 1970-01-01
      • 2014-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-03
      相关资源
      最近更新 更多