我遇到调用任何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>
答案 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()
。)