我只是试图在某个元素索引之前总计元素的宽度并将其分配给变量。当使用$(this).width()或$(object).width时,我得到NaN。然而,我可以记录并提醒这些数值很好吗?
标记式
<div class="gallery">
<div class="gallery-imgs" style="color: #000;">
<div class="gallery-img-slide">
<img src="http://placehold.it/700x1080">
</div><div class="gallery-img-slide">
<img src="http://placehold.it/900x1080">
</div>
</div>
</div>
<script type="text/javascript">
function focusSlide(slide_index) {
debugger;
var offset_width;
if (slide_index === 0) {
$(".gallery-imgs").css("margin-left",
($(".gallery").width() / 2) - $(".gallery-imgs").children().eq(slide_index).width() / 2 + "px");
}
else {
$(".gallery-imgs").children().each(function(index, object){
debugger;
if (index < slide_index) {
offset_width += $(object).width();
console.log($(object).width());
}
});
}
}
答案 0 :(得分:3)
这是因为你有var offset_width;
。
您需要将其初始化为如下数字:var offset_width = 0;
offset_width += 1
实际上意味着offset_width = offset_width + 1
。
如果您没有将其设置为任何内容,那么这是一个无效的声明,因为您要添加NaN + 1
。您的错误实际上不是因为$(object).width()