Javascript 使用jquery进行Div定位
我有一些通过jquery定义的职位: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_
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
不是。您的代码以当前的此
/范围的窗口
运行,并且优先。答案更新如下。