这是我目前所面对的工作演示: http://isaaclean.com/test/test2掌握jQuery的阿贾克斯不需要的GET请求的负载
基本上,如果你点击“博客”中的主导航栏,第二栏旁边将Ajax加载包含“帖子”列表的“blog.html”。如果您点击第二列中的其中一个帖子,则第三列将加载该帖子的内容。
虽然工作正常,但如果再次单击“Blog”,这就是脚本出现故障的地方。 Firebug在第二列显示超过20个GET请求。然后,当你点击第二列中的链接后,发送等量的GET请求。你甚至可以看到动画变得疯狂。我不知道为什么会发生这种情况。
它开始时,我加入以下行mainnav.js发生:
if($('#listnav').children().size() == 1) {
$('#listnav nav li').stop().hide("slide", {direction: "left"}, loadContent);
} else {
$('#listnav').load(toLoad, '', showNewContent);
}
为什么我说这是因为我想要的脚本阿贾克斯之前,充分展现滑出动画之所以加载另一个blog.html当第二次点击“博客”时。在实现上面的代码和loadContent函数之前,问题在于滑动输出动画被页面加载切断。为了防止这种情况发生,我认为使用回调函数是可行的,因为动画完成后会发生回调。
唯一的问题是,如果你第一次加载页面#listnav没有子元素。因此,如果您尝试使用下面的代码:
$('#listnav nav li').stop().hide("slide", {direction: "left"}, loadContent);
...永远不会执行回调函数,因为直到你点击没有导航li元素“博客”。这就是为什么我试图实现一个if语句来检查#listnav中是否有元素,并且它在第一次点击时工作正常,但脚本之后的任何点击都会出错。
所以任何人都可以帮我找到解决这个问题的方法吗?
是啊,这是问题!我期待着一个回调,但是对于每个元素都是这样做的。我不想牺牲幻灯片左侧的动画,所以我做了一个不同的解决方案,我隐藏并快速显示listnav元素。谢谢一堆! :) –