使用jQuery基本功能
问题描述:
我在调用任何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>
答
我不知道你是什么意思“当我打电话给另一个页面“,但如果你正在尝试t o为正在加载的内容中的元素设置事件处理程序,您需要等待直到它们已经加载 - .load()
method是异步的,这意味着代码在它立即执行之后(即,不等待响应负载) .click()
处理程序一旦完成此举的部分代码到方法的完整的回调:
$(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');
});
});
请参阅.delegate()
doco了解更多信息,并注意如果您使用的是最新版本的jQuery,则应使用.on()
method而不是.delegate()
。 (或者如果你有一个非常旧的jQuery版本,你需要使用.live()
。)
你在所有的页面上都包含jquery.js库吗?你可以显示一个不工作的页面的html/js吗? – JohnFx 2012-02-20 20:50:37