我对css()函数有一个奇怪的问题。这是我的代码片段。
console.log('' + $(this).css('left') + ':' + $(this).css('top'));
console.log('Desired position - ' + return_to_left + ':' + return_to_top);
$(this).css('top', return_to_top + 'px');
$(this).css('left', return_to_left + 'px');
console.log('Finally: ' + $(this).css('left') + ':' + $(this).css('top'));
我在控制台上获得的输出就是这个。
458px:2113px
Desired position - 448px:2102px;
Finally: 458px:2113px;
有人可以建议为什么会这样吗?我尝试过'!important'。没有帮助。
(另外,对于上下文,此代码是动画后回调函数的一部分。它会尝试将元素放回到动画开始之前的位置。)
感谢您的帮助。
答案 0 :(得分:5)
发现问题!!
此:
console.log('Desired position - ' + return_to_left + ':' + return_to_top);
...输出
Desired position - 448px:2102px;
因此,您的变量return_to_left
和return_to_top
ALREADY最后会有px
字符串。
你的css电话看起来像这样:
$(this).css('top', '448pxpx');
$(this).css('left', '2102pxpx');
哪个不行! :p从css调用的末尾删除+ 'px'
。
答案 1 :(得分:1)
return_to_left和return_to_top已经包含'px',但你是第二次追加它。
$(this).css('top', return_to_top );
$(this).css('left', return_to_left );
答案 2 :(得分:1)
我尝试了你发布的代码。 它奏效了。
你的变量return_to_left和return_to_top是否有可能是“px”?
我把它放在变量中:
return_to_left = 100;
它奏效了。 我认为您的内容将动态保存。 所以如果你通过加载信息 $(本)的CSS( '左')
然后就会出现“px”
尝试使用此代码代替您的代码:
$(this).css('top', return_to_top);
$(this).css('left', return_to_left);
我不知道您的完整代码,但这可能会解决您的问题