JS语法会破坏页面

JS syntax breaks the page

本文关键字:语法 JS      更新时间:2023-09-26

我的外部JS文件中有以下代码:

var myDiv = $(".myDiv");
if (myDiv.css('left') == 'auto') { 
    var pos = myDiv.position(); 
    myDiv.css({ "left:" + pos.left + "px", "top:" + pos.top + "px" }); 
} 

下面一行似乎打断了我的页面:

myDiv.css({ "left:" + pos.left + "px", "top:" + pos.top + "px" }); 

如果我把它评论出来,一切都很好,显然除了这个功能。

如果我将这些值置于警戒状态,我也会得到正确的值。

alert(pos.left + ' ' + pos.top)

我错过了什么?

您正试图通过传入2个strings来创建一个object

应该看起来像这样:

myDiv.css({
  "left": pos.left + "px",
  "top": pos.top + "px"
});

简单修复,对css属性使用javascript对象表示法。将冒号移到引号外:

myDiv.css({ "left": pos.left + "px", "top": pos.top + "px" });

您需要在传递给.css()函数的对象中的值周围加引号:

myDiv.css({ "left: '" + pos.left + "px'", "top: '" + pos.top + "px'" });