后来插入的标签,JQuery没有看到

Abu*_*aty 1 html javascript jquery

说我的页面中有这个代码:

<script language="javascript">
 $(document).ready(function() {
  $(".test").click(function() {
   alert('Hello');
  });
 });
</script>
Run Code Online (Sandbox Code Playgroud)

为什么以前的代码不适用于具有类"test"的元素,我稍后会将其添加到文档中,例如:

$('body').append('<p class="test">Test</p>');
Run Code Online (Sandbox Code Playgroud)

因为当我点击上一个<p>标签时,没有任何反应.

另外,如果我有这个:

<div id="first">Edit me.<div id="second">Save me.</div></div>
Run Code Online (Sandbox Code Playgroud)

我可以做文本描述的内容吗?也就是说,控制#firstdiv的内容而不影响div的内容#second

谢谢.

Chr*_*son 8

问题是,.click()只有在执行方法时,才会为DOM中可用的元素应用侦听器.你应该看看.on().

有了.on()你可以委托的情况下,像这样的,例如:

$("body").on("click", ".test", function() {
   alert('Hello');
});
Run Code Online (Sandbox Code Playgroud)

现在test,您体内可用的任何元素(当前和未来)都将具有单击事件侦听器.