使用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> 
+0

你在所有的页面上都包含jquery.js库吗?你可以显示一个不工作的页面的html/js吗? – JohnFx 2012-02-20 20:50:37

我不知道你是什么意思“当我打电话给另一个页面“,但如果你正在尝试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()。)