在ajax调用之后的jquery,具有相同Ids的事件停止工作

Edi*_*son 2 javascript jquery javascript-events

不确定这是不是一个错误,或者我不认为这样做.

我有一个侧边栏页面动态加载主体.

对于page1,我有一个元素#id1的回调,它适用于初始加载.

在用户导航到page2之后,主内容将被page2的内容替换,page2的内容也包含#id1的元素,它们用于相同的目的.事件也在那里初始化.

问题是第2页上的所有内容都可以使用,除了与#id1相关的事件.

如果导航回第1页,#id1将无法正常工作.

看完控制台之后,我发现在调用$("#id1")时有时会给我初始加载元素(没有销毁?),这可能就是原因.

ajax加载只使用:

$ .get(path,function(data){$('#main').html(data)});

知道这里发生了什么吗?

如果旧元素没有"在jquery中被正确销毁",那么这里假设要做什么.

Int*_*ang 6

虽然目前还不清楚你的绑定是什么,但解决方案是使用(取决于你的jQuery版本)live()on()确保你在执行时绑定到不在DOM中的元素.

jQuery 1.7+: on()

$(document).on('click', '.selector', function() { ... });
Run Code Online (Sandbox Code Playgroud)

jQuery <1.7: live()

$('.selector').live('click', function() { ... });
Run Code Online (Sandbox Code Playgroud)