增加div的宽度不能正常工作

问题描述:

我想实现的是当滚动到行的末尾(右箭头),然后在最后一个元素上选择div停止。在添加几个虚拟单元之前,它工作。但现在我决定只是增加一些行的div的宽度。增加div的宽度不能正常工作

if(!rows[currentRowIndex].reachedEnd) 
{ 
    console.log("increasing "); 
    $("#row" + currentRowIndex).width("+=210"); 
    rows[currentRowIndex].reachedEnd = true; 
} 

由于某些原因,这不起作用。我甚至试图增加一些更大的数字,但它跳到一些意想不到的位置,这意味着我不明白宽度发生变化后div的情况。

工作副本(调整窗口显示2个细胞在客户区)https://jsfiddle.net/souren/98rddfzp/3/

UPD1:

我甚至尝试:

$("#row" + currentRowIndex).width($("#row" + currentRowIndex).width() + 210); 

具有相同的结果。

+0

我有打印机.row的宽度之前,我改变宽度,它只显示不亚于我的窗口大小。但我期望获得div的整个宽度,在那里我添加了很多单元格,而且目前不可见。有人可以解释为什么.row宽度只给出可见部分? – Pablo

jQuery的width将实际宽度作为参数,不计算表达式。你必须自己做。

下面是一个工作示例:

$(function() { 
 
    var $div = $('#myDiv') 
 
    $('#increase').on('click', function() { 
 
    $div.width($div.width() + 250) 
 
    }) 
 
})
#myDiv { 
 
    width: 100px; 
 
    height: 100px; 
 
    background-color: blue; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div id="myDiv"></div> 
 
<button id="increase">Increase</div>

+0

'$ div.width(function(_,value){return value + 250;})' – Andreas

+0

我认为是这样,但刚刚测试过,看到'width(“+ = 210”);'正在工作。 –

+0

可能还有一些其他问题,因为您建议的方式没有帮助。 https://jsfiddle.net/souren/98rddfzp/4/ – Pablo

尝试按照这个例子中,这将解决您的问题::

HTML

<div class="testDiv" style="background-color: grey; width: 100px;">Rana</div> 

jQuery的

<script type="text/javascript"> 
$(document).ready(function() { 
    $('button').on('click', function(){ 
     $(".testDiv").width($(".testDiv").width() + 210); 
    }); 
}); 
</script> 
+0

仍然不起作用。我无法通过滚动到达最后一个单元格。 https://jsfiddle.net/souren/98rddfzp/4/ – Pablo