我正在尝试使用滑块在HTML布局中设置相关列的宽度。
在这段代码中,一切都很好用,在这里我为slide-UP上的另一列获取新值。
var item.thisWidth; // current width of edited column
var item.prevCellWidth; // current width of previus/last column
FDD
if(slider.value > item.thisWidth){
var prevNewWidth = item.prevCellWidth - (slider.value-item.thisWidth);
$('#r'+item.thisRowId+'s'+item.prevCellRowOrder+'').css('width', prevNewWidth + '%');
}
但是在下滑计算之后,这里发生了一些奇怪的事情。创建的价值为数十万。 需要记住的是,滑块最小/最大值是0-100
“slider.value”
if(slider.value < item.thisWidth){
var prevNewWidth = item.prevCellWidth + (item.thisWidth - slider.value);
$('#r'+item.thisRowId+'s'+item.prevCellRowOrder+'').css('width', prevNewWidth + '%');
}
我试图检查所有传递给计算的值,然后显示确定。
alert('oldWidth'+item.thisWidth+'sliderWidth'+slider.value+'previuscell'+item.prevCellWidth+'');
但是当减少滑块时,我得到了这些错误的结果
e.g. 30 + (40 - 10) = 400000; ??
更新:
使用@ rogelio的建议对此进行排序 - 将字符串解析为整数:
var integer = parseInt(string);
谢谢,@ rogelio!
答案 0 :(得分:1)
问题是因为slider.value
是一个字符串。假设您从输入中获取值,则需要将其解析为整数。使用javascript是微不足道的,例如你的行
var prevNewWidth = item.prevCellWidth + (item.thisWidth - slider.value);
需要改为
var prevNewWidth = item.prevCellWidth + (item.thisWidth - parseInt(slider.value));
答案 1 :(得分:0)
我研究自己,所以对于像这样的简单事情,有时候我可以花一些时间没有人指导我找到正确的信息。
parseInt函数(值);这是我更新的问题和答案:)
function handleSliderChange(event, slider){
$('#r'+item.thisRowId+'s'+item.thisRowOrder+'').css('width', slider.value + '%');
var sliderValue = parseInt(slider.value);
var oldValue = item.thisWidth;
var oldPrevValue = item.prevCellWidth;
if(sliderValue > oldValue){
var prevNewWidth = oldPrevValue - (sliderValue-oldValue);
$('#r'+item.thisRowId+'s'+item.prevCellRowOrder+'').css('width', prevNewWidth + '%');
}
if(''+slider.value+'' < ''+item.thisWidth+''){
var prevNewWidth = oldPrevValue + (oldValue - sliderValue);
$('#r'+item.thisRowId+'s'+item.prevCellRowOrder+'').css('width', prevNewWidth + '%');}
if(''+slider.value+'' == ''+item.thisWidth+''){
var prevNewWidth = sliderValue;
$('#r'+item.thisRowId+'s'+item.prevCellRowOrder+'').css('width', prevNewWidth + '%');
} }
对于像我这样不喜欢大学或大学的人......总是为数字创建变量,如果数字也添加了parseInt(&#39; value&#39;) - &gt;这应该让你避免常见的错误,节省一些时间:)