jQuery ajax加载了元素,自动向它们添加事件?

时间:2012-02-17 01:42:11

标签: javascript jquery ajax dom

我的网站为导航的每个部分使用ajax和hashtags,因此每个元素(主要导航部分除外)都是通过ajax加载的,这会破坏DOM连接到那些内部的任何元素(或者不管发生什么) ,所以我不能只在我的javascirpt中有这样的东西,它适用于所有事情:

$(".chat-wrapper li").draggable();

目前我必须把它放在我的ajax调用的成功部分中,所以当加载聊天按钮时,它会将它添加到它们,这不是我唯一的一个问题实例,它发生在很多事情上,这个这只是我目前的例子,所以我的问题是,jquery或其他什么方法可以解决这个问题?必须有一些方法来执行此操作,因此在初始页面加载后调用的任何元素也可以使用这些和所有元素。

感谢。

1 个答案:

答案 0 :(得分:0)

如果您希望将事件绑定到元素并使其保持不变,则可以查看jQuery函数.live()

http://api.jquery.com/live/

编辑:快速查看后,对于jQuery 1.7+(http://api.jquery.com/on/)和.on(http:// api),.delegate()似乎是$(".chat-wrapper").delegate("li", "bind", function() { this.draggable(); }); 。 jQuery 1.4.3+的jquery.com/delegate/)是更好的解决方案。页面链接上存在每个函数的用法示例,但您可以这样使用它(我可能错了,因为我只是快速输入它):

$(".chat-wrapper li").on("bind", function() {
    this.draggable();
});

可替换地:

{{1}}