我在页面加载时使用以下代码调用.css()
函数:
$(function(){
var positionLeft = parseInt($(".wrapper").css("margin-left"))-50;
if (isNaN(positionLeft)){
console.log(positionLeft);
}
$("#full-wrapper").css("margin-left",(positionLeft+"px").toString());
});
由于某些原因,positionLeft始终为
NaN
。如果我使用setInterval(fn,1),并且仅在1毫秒后要求一个positionLeft,则positionLeft符合预期。这里发生了什么? 最佳答案
我认为您最终需要删除该.toString()
函数并使其如下所示,因为您在这里实际上并不需要toString()
-无论如何都可以工作:
$("#full-wrapper").css("margin-left", positionLeft+"px");
自己看看:
$(function() {
var positionLeft = parseInt($(".wrapper").css("margin-left")) - 50;
if (isNaN(positionLeft)) {
console.log(positionLeft);
}
$("#full-wrapper").css("margin-left", positionLeft + "px");
});
.wrapper {
margin-left: 150px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrapper">.wrapper</div>
<div id="full-wrapper">#full-wrapper</div>