的情况如下
在一个父页我们有一个ID和名称 “占位符” div标签
- 步骤1:的“占位符”是通过调用Ajax填充有第1页内容
- 步骤2:“占位符”是通过调用Ajax填充有第2页的内容
- 步骤3:“占位符”再次通过Ajax填充有第1页内容致电
当第一次加载$(document).ready(function()被调用时,但是从第3步开始,就绪函数没有被调用。
任何方向将不胜感激。
的情况如下
在一个父页我们有一个ID和名称 “占位符” div标签
当第一次加载$(document).ready(function()被调用时,但是从第3步开始,就绪函数没有被调用。
任何方向将不胜感激。
你应该在你的Ajax调用
使用complete
回调我想你暗示是那些获得通过你的Ajax调用注入的div元素正在失去他们的事件处理程序。如果是这种情况,您需要使用live
委托这些事件,或将它们重新绑定到您的ajax方法的success
回调中的元素。一个$(document).ready()
块只会在第一次加载页面时执行。
例如说,是可以获得通过你的Ajax调用替换的要素之一是class="something"
锚:
$('a.something').live("click", function() {
alert('hello');
});
以上将确保当锚被通过Ajax调用,点击处理器取代仍然会执行。
我的理解是$(document).ready)仅在浏览器完成它的初始GET网页时调用。
如果你想触发一个函数,那么你可以在你的Ajax调用中使用成功回调。
“当第一次加载页面$(document).ready(function()正在调用,但从步骤3开始,ready函数没有被调用时” - 假设1-3 ()是一个EVENT HANDLER - 换句话说:文档已准备好成为可执行文件。访问和脚本已经完成装载后的其他事件发生(和之前,但为了这个目的,jQuery是“准备”就绪时
只是一个供参考以下内容也有效:
function myOnLoaded()
{
// do my load thing here
}
$(document).ready(myOnLoaded);
当事件(就绪)触发时,它调用myOnLoaded。
以上关于$(document).ready不工作的原因的答案是正确的。
但是$(文件).live已在jQuery的1.9 http://jquery.com/upgrade-guide/1.9/#live-removed
在代替被弃用,你应该使用$(文件)。在 文档浏览:http://api.jquery.com/on/
function myOnLoaded()
{
// do my load thing here
}
$(document).on("click", "a.something", myOnLoaded)
您应该添加您的JavaScript代码的一些代码,以获得更好的解决方案。 – 2009-10-29 13:00:31