Javascript js/jquery函数调用顺序未反映在结果中
编辑: 好的,为了帮助解决这个问题,我在网上举了一个例子:Javascript js/jquery函数调用顺序未反映在结果中,javascript,jquery,Javascript,Jquery,编辑: 好的,为了帮助解决这个问题,我在网上举了一个例子: 该示例按预期工作,但没有我想要的内容。请注意,这显然只发生在FF13上,而不是IE9上 重新创建问题的步骤: -Ctrl+F5可重新加载页面(覆盖缓存)。 -使用Firebug(FF的插件),将1.jpg更改为head.gif -单击右侧的“库存”菜单选项卡 请注意,如果使用1.jpg,菜单和底部之间会出现间隙。所以问题是,我如何才能让gif图像与页面正常工作?jQuery是异步的 不要在loadContent之后调用loadSide
该示例按预期工作,但没有我想要的内容。请注意,这显然只发生在FF13上,而不是IE9上 重新创建问题的步骤:
-Ctrl+F5可重新加载页面(覆盖缓存)。
-使用Firebug(FF的插件),将1.jpg更改为head.gif
-单击右侧的“库存”菜单选项卡 请注意,如果使用1.jpg,菜单和底部之间会出现间隙。所以问题是,我如何才能让gif图像与页面正常工作?jQuery是异步的 不要在loadContent之后调用loadSidebar,而是将其作为回调传递给: 这将在内容加载完成时调用loadSidebar,而不是在开始加载后立即调用 退房。它可能会帮助您理解为什么需要回调 编辑 正如Eric指出的,在评论中,您还将url存储在id中。您应该将其存储在锚定的
href
属性中。然后,您可以从单击处理程序返回false,以避免加载整个页面:
$(document).ready(function() {
$(".tabs a").click(function() {
loadContent('#ContentDiv', this, '.tabs a', 'href', loadSidebar);
return false;
});
});
我真的不理解这个问题,所以我猜你的问题是:
loadSidebar
是否在loadContent
之前执行?为什么要在元素的id
中存储url?($(elm).attr(attr)
扩展为$(this.attr('id')
)@Eric我意识到了这一点。我使用id是因为如果我在上使用href,当单击元素时,它会立即加载页面。使用允许我在没有额外代码的情况下拥有所需的功能。如果你有更好的方法,那就发吧!虽然将数据放在id
中总是一个坏主意,但创建新属性并没有什么错,比如data-####
,比如数据ajaxloads
。不过,在这种情况下,让它与href
一起工作会更好。好吧,我仍然有同样的问题,但其他一些问题已经解决/改进-谢谢。代码适用于某些页面,但不适用于其他页面。
$(document).ready(function() {
$(".tabs a").click(function() {
loadContent('#ContentDiv', this, '.tabs a', 'href', loadSidebar);
return false;
});
});