我在标题中有一些标签,并使用Xajax加载大模块 - 几乎整页。我用jQuery调用了一些类(比如使用某个类的锚点然后点击事件......)。 但是当我加载一个新模块并分配新内容(使用新类和id)时,jQuery选择器似乎不起作用 - 即在点击锚之后没有任何事情发生。
当您使用jQuery忘记$(document).ready(...)时会出现相似的情况。 是否有任何解决方案可以告诉jQuery有关新内容,新类和id的信息,这些信息在加载页面时不可用?
答案 0 :(得分:0)
这是因为您的事件绑定仅适用于在调用绑定时存在的DOM元素。由于在调用绑定($('#sel').click(..)
)之后加载了模块,因此这些DOM元素不会绑定到事件处理程序。
要解决此问题,您可以使用jQuery .live()
方法绑定稍后将加载的元素。 jQuery将跟踪正在创建的所有新DOM项目,并将调用新元素的绑定。
<div class="clickme">
Click here
</div>
$('.clickme').click(function(){
alert('click event from normal binding!');
$(this).parent().append('<div class="clickme">Click here - won\'t trigger for normal bind</div>');
})
$('.clickme').live('click', function(){
alert('click event from live binding!');
})