【发布时间】:2015-03-15 00:15:24
【问题描述】:
此代码使用 Ajax 调用填充图像滑块内的内部 div:
$.ajax({
type: "GET",
dataType: 'json',
url: $(this).attr('href')
}).done(function (result) {
// append thumbnails to lower slider
var correct_width = 0;
for (var $i = 0; $i < result[1].length; $i++) {
$('#lower_slider').append("<img src='" + result[1][$i]['image_thumb_src'] + "'>");
// calculate $('#lower_slider') width
$('#lower_slider').find('img').each(function () {
correct_width += $(this).outerWidth();
});
}
// set $('#lower_slider') width
$('#lower_slider').width(correct_width);
});
此代码的功能在第二次执行时完美运行 - 很明显,它与一些竞争条件有关。那么如何消除它们呢?
p.s - 我知道这个问题被问到了不同的用途,但没有一个建议的解决方案对我有用。
谢谢。
【问题讨论】:
-
不应该是这个代码:$('#lower_slider').find('img').each(function () { correct_width += $(this).outerWidth(); }) ;在 "for (i..." 循环之外?
-
逻辑说是的,但是当我尝试它时,$('#lower_slider').width() 只是出现的第一张图片
-
另外,你在 for lool 中缺少“var”: for (var $i = 0; $i
-
谢谢伊万,我修好了。不过还是遇到了同样的问题。
-
将“每个”段放在循环之后(如逻辑所示)并放入以下行:“console.log(correct_width);”在设置 #lower_slider 的宽度之前 - 看看最终值是多少
标签: javascript jquery css ajax