使用jQuery基本功能

时间:2012-02-20 20:48:23

标签: javascript jquery

我遇到调用任何jQuery函数的问题。

负载正在运行,但是当我调用另一个页面时,什么都没有?

我的代码是:

JS:

$(document).ready(function(){
    $("#content").load('page.php');

    $("#submenu").click(function () {
       alert('Hello');
    });
});

HTML:

<div id="content"></div>

page.php文件

<div id="submenu">
    <ul>
        <li><a href="#profile">profile</a></li>
        <li><a href="#logout">logout</a></li>
    </ul>
</div>

1 个答案:

答案 0 :(得分:2)

我不确定“当我调用另一个页面时”是什么意思,但是如果你正在尝试为正在加载的内容中的元素设置事件处理程序,则需要等到它们已经加载 - {{3是异步的,这意味着它立即执行后的代码(即,无需等待对负载的响应),以便在完成后将.click()处理程序分配给.load()处理程序。 1}}方法的完整回调:

$(document).ready(function(){
    $("#content").load('page.php', function() {
       $("#submenu").click(function () {
          alert('Hello');
       });
    });
});

或者,您可以使用委派事件处理并将单击处理程序绑定到容器对象:

$(document).ready(function(){
    $("#content").load('page.php');

    $("#content").delegate("#submenu", "click", function () {
       alert('Hello');
    });
});

有关详细信息,请参阅.load() method,请注意,如果您使用的是最新版本的jQuery,则应使用.delegate() doco而不是.delegate()。 (或者如果你有一个非常旧版本的jQuery,你需要使用.live()。)