简而言之,我有一个页面,其中内容正在使用jquery load()加载。问题是当我试图选择时。
$('a.selected_class').click(function(e){
alert('alert');
e.preventDefault();
});
(内部文档准备好)在第一页上工作,但在任何后续页面(使用$(this).load(url);加载到div)中,选择器停止工作。
任何提示?
答案 0 :(得分:6)
click()
仅适用于当前页面上存在的元素。查看live
和delegate
。使用live
:
$('a.selected_class').live("click", function(e){
alert('alert');
e.preventDefault();
});
正如帕特里克所提到的那样,如果可能的话,delegate
是首选。
答案 1 :(得分:3)
不是它停止工作。它只是将click
处理程序绑定到运行时存在的那些元素(在页面加载时)。
您可以在<div>
上放置动态加载的.delegate()
处理程序。
$('#mydiv').delegate('a.selected_class','click',function(e){
alert('alert');
e.preventDefault();
});
处理程序放在#mydiv
元素上,当click
事件冒泡到它时,它会测试事件是否发生在匹配a.selected_class
的元素上。
.live()
方法做同样的事情,但它是为整个文档做的,所以它通常不是一个可行的方法。