Javascript 如何在ajax.Loaded内容上放置事件?

Javascript 如何在ajax.Loaded内容上放置事件?,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我有一段代码: $("#contantainer").load("some_page.txt"); 在该文件中,我有以下内容: <div class="nav"> <ul id="nav_ul"> <li><a class="nav_a" href="#home" id="home">Home</a></li> <li&g

我有一段代码:

$("#contantainer").load("some_page.txt");
在该文件中,我有以下内容:

        <div class="nav">
            <ul id="nav_ul">
              <li><a class="nav_a" href="#home" id="home">Home</a></li>
              <li><a class="nav_a" href="#page2" id="page2">Page 2</a></li>
            </ul>
        </div>

我想点击事件并加载不同的内容。问题是浏览器无法识别发生了单击事件。我怎样才能实现我的目标?谢谢。

您需要启动回调函数,该函数在加载数据时启动

$("#container").load("some_page.txt", function() {
  $("#page2").click(function() {
    alert("link clicked");
  });
});

您无法在尚未加载的元素上绑定单击事件,因此您首先拥有内容,然后将单击处理程序绑定到该元素。作为第二个参数传入的函数是一个回调函数,它在加载所有数据时运行。

您可以在容器上使用事件委派:

$('#container').on('click', '.nav_a', fn);
只要导航始终是容器的子对象,它就会工作。否则,选择包含所有导航的最近父项。这可以在页面加载时绑定,也可以在容器存在时绑定

也可以在将它们添加到dom后进行绑定:

$("#container").load("some_page.txt", function() {
  $("#container .nav_a").on('click', fn);
});

确保只选择容器中的.nav_a,以避免双重绑定页面上的任何其他.nav_a

是否为a分配了单击处理程序?请尝试此$document。在“单击”时,'.nav_a',函数{//Your code};谢谢,代表团工作了,但没有。问题解决了,干杯。