Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery进行Div定位_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 使用jquery进行Div定位

Javascript 使用jquery进行Div定位,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一些通过jquery定义的职位: var top=61; var left=255; $("#number_"+ticketValues[0]).css("position","absolute"); $("#number_"+ticketValues[0]).css("top","60px"); $("#number_"+ticketValues[0]).css("left",left+"px"); 这段代码成功地创建了如下div: <div id="number_

我有一些通过jquery定义的职位:

    var top=61;
    var left=255;
$("#number_"+ticketValues[0]).css("position","absolute");
$("#number_"+ticketValues[0]).css("top","60px");
$("#number_"+ticketValues[0]).css("left",left+"px");
这段代码成功地创建了如下div:

<div id="number_2344" style="position: absolute; top: 60px; left: 255px;">2344</div>
<div id="number_2344" style="position: absolute; left: 255px;">2344</div>
出于某种原因,它是这样的:

<div id="number_2344" style="position: absolute; top: 60px; left: 255px;">2344</div>
<div id="number_2344" style="position: absolute; left: 255px;">2344</div>
2344

如何动态添加顶级值?

除非有其他内容正在修改
top
,否则您的代码看起来是正确的

注意:jQuery中的任何地方都不需要+“px”,因为
css
方法会自动将其添加到数字中

如果使用接受对象的
CSS
方法,还可以组合多个CSS属性

e、 试试这个 要查看“其他东西”是否正在修改
top
,只需在代码中将其重命名为另一个名称即可

更新:
检查
窗口
我看到
顶部
是一个属性,但
左侧
不是。这优先于您的
var top
,因为您的代码在窗口的范围内运行(即
窗口

解决方案: 当代码在
窗口的范围内运行时,不要使用
top
(或
窗口的任何其他属性
)作为变量名

如果您的代码在一个函数中,它就会工作得很好(这就是为什么所有的JSFIDLE都可以工作,因为代码被包装在另一个作用域中)

正确的解决方案: 这一切都意味着您的代码在jQuery加载事件之外运行(这是一个否)

将其更改为:

$(function(){
    var top = 61;
    var left = 255;
    $("#number").css({position: "absolute", top: top, left: left});
});
这将在另一个作用域中运行它,并避免命名问题。加载事件处理还意味着DOM在代码运行之前已完全加载


注意:
$(函数(){…})
只是
$(document.ready(function(){…})的缩写

在设置值
top
和使用它来应用样式之间是否还有其他代码?jsfiddle.net显示了问题理论,此代码应该可以工作,向我们显示可能阻止它工作的任何其他代码。在本例中工作正常,一定有其他因素影响它。顺便说一句,有关替代方法,请参见注释代码。
top
window
的属性,但
left
不是。您的代码以当前的
/范围的
窗口
运行,并且优先。答案更新如下。