编辑:
好的,为了帮助解决这个问题,我在网上举了一些例子:
http://lodge323.com/test/index.html
该示例按预期工作,但它没有我想要的内容。请注意,这显然只发生在FF13而不是IE9。
重新创建问题的步骤:
-Ctrl + F5重新加载页面(覆盖缓存)
- 使用Firebug(FF的插件),将1.jpg更改为head.gif
- 单击右侧的“库存”菜单选项卡
注意如果使用1.jpg,菜单和底部之间是否存在间隙。所以问题是,我怎样才能让gif图像与页面一起正常工作?
答案 0 :(得分:3)
jQuery的load是异步的。
不是在loadContent之后调用loadSidebar,而是将其作为回调传递给load:
$(document).ready(function() {
$(".tabs a").click(function() {
loadContent('#ContentDiv', this, '.tabs a', 'id', loadSidebar);
});
});
function loadContent(divTarget, elm, selector, attr, callback) {
$(divTarget).load($(elm).attr(attr) + ' #ContentLoad', callback);
}
当内容加载完毕后,这将调用loadSidebar,而不是在开始加载后立即调用。
结帐Understanding Callback Functions in Javascript。它可能有助于您理解为什么需要回调。
修改
正如Eric所指出的那样,你还在一个id中存储了一个url。您应该将其存储在锚点的href
属性中。然后你可以从你的点击处理程序返回false,以避免整个页面被加载:
$(document).ready(function() {
$(".tabs a").click(function() {
loadContent('#ContentDiv', this, '.tabs a', 'href', loadSidebar);
return false;
});
});