通过ajax在jquery中加载页面的麻烦

时间:2010-07-02 01:08:54

标签: javascript jquery ajax

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

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

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

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

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

非常感谢您的任何帮助!

2 个答案:

答案 0 :(得分:1)

如果我没弄错的话,你需要使用jQuery unbind来取消绑定事件。

unbind

这是stackoverflow上的similar question

答案 1 :(得分:0)

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

您可以将事件处理程序绑定到“正文”或类似的顶级div,并观察定位所需div的事件。 docs网站上给出的示例是表格:

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

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