在加载的页面中更改jQuery单击处理程序锚定
我有一个母版页,根据单击的链接将内容加载到div中。我通过使用jQuery为某些锚添加一个单击处理程序来实现这一点:在加载的页面中更改jQuery单击处理程序锚定,jquery,Jquery,我有一个母版页,根据单击的链接将内容加载到div中。我通过使用jQuery为某些锚添加一个单击处理程序来实现这一点: <div id="nav"> <a href="somepage.html"> ... </div> <div id="content"/> <script type="text/javascript"> $(document).ready(function() { $('#nav a, #foo
<div id="nav">
<a href="somepage.html">
...
</div>
<div id="content"/>
<script type="text/javascript">
$(document).ready(function() {
$('#nav a, #footer a').click(function(e) {
$('#content').load($(this).attr('href'));
return false;
});
});
</script>
但这似乎不起作用。你知道如何在那些加载的页面中的锚上设置点击处理程序吗
$(document).on('click', '#content a', function(e) {
...
});
应该有用。动态添加元素时,需要使用on()
将它们绑定到事件。从文档中:
事件处理程序仅绑定到当前选定的元素;在代码调用时,它们必须存在于页面上
.on()。要确保元素存在并且可以选择,请执行以下操作
在文档就绪处理程序中为处于
页面上的HTML标记。如果新的HTML被注入到
页面中,选择元素并在新HTML之后附加事件处理程序
被放置到页面中
理想情况下,您希望DOM中的父元素比文档
更接近,请尝试:
$('#content').on("click", "a", function(e) {
...
});
谢谢你的解释,j08691。我按照Matt Burland的建议,使用“#content”元素添加了.on()事件处理程序。Matt,谢谢你的#content建议。
$('#content').on("click", "a", function(e) {
...
});