Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在加载的页面中更改jQuery单击处理程序锚定_Jquery - Fatal编程技术网

在加载的页面中更改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中。我通过使用jQuery为某些锚添加一个单击处理程序来实现这一点:

<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) {
    ...
});