为什么我可以记录并提醒从jQuery.width()返回的值,但不能在赋值中使用?

时间:2018-02-19 02:31:10

标签: javascript jquery

我只是试图在某个元素索引之前总计元素的宽度并将其分配给变量。当使用$(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());
        }
    });
}

}

1 个答案:

答案 0 :(得分:3)

这是因为你有var offset_width;

您需要将其初始化为如下数字:var offset_width = 0;

offset_width += 1实际上意味着offset_width = offset_width + 1

如果您没有将其设置为任何内容,那么这是一个无效的声明,因为您要添加NaN + 1。您的错误实际上不是因为$(object).width()