使用Jquery.position的DIV position不';好像不行

使用Jquery.position的DIV position不';好像不行,jquery,dom,Jquery,Dom,我有一条错误消息,我想对冒犯的li元素进行定位。我正在获取元素的位置,并尝试在其顶部放置一个隐藏的div和半不透明。下面是我到目前为止的情况 脚本 function error_msg(error,id) { var p = $(id); var position = p.position(); $(".overlay").css("left: " + position.left + ", top: " + position.top); $(".overlay").width(p.inne

我有一条错误消息,我想对冒犯的li元素进行定位。我正在获取元素的位置,并尝试在其顶部放置一个隐藏的div和半不透明。下面是我到目前为止的情况

脚本

 function error_msg(error,id)
 {
 var p = $(id);
var position = p.position();
$(".overlay").css("left: " + position.left + ", top: " + position.top);
$(".overlay").width(p.innerWidth())  
$(".overlay").height(p.innerHeight())
$(".overlay").fadeIn();
 }  
(id是li的元素id)这会计算正确的位置,但会被忽略

css

  div.overlay {
  font-size: 20px;
  margin-bottom: -1px;
  background-color: rgba(247, 40, 40, 0.6);
  z-index: 10000;     
  border-bottom: 2px solid #000;
  border-top: 1px solid #4a4b4d;
  }
Html

<ul>
<div class="overlay" style="position: absolute; display: none;" id="error_li" onClick="hideMsg()">some error message</div>
<li id="item_1">stuff</li>
<li id="item_2">stuff</li>
<li id="item_3">stuff</li>
<li id="item_4">stuff</li>
<li id="item_5">stuff</li>
</ul>
    一些错误消息
  • 东西
  • 东西
  • 东西
  • 东西
  • 东西
每当触发时,它总是将div放在列表的顶部或位置0,0。有没有线索告诉我哪里出了问题

$(".overlay").css("left: " + position.left + ", top: " + position.top);
那条线无效
css
不设置
style
属性:它直接向元素添加样式

你有两种方法。第一种是使用多个
css
调用(您可以将它们链接起来以提高性能和可读性):

或者,您可以将对象传递给
css

$('.overlay').css({
    left: position.left,
    top: position.top
});
由于这些是
位置
对象的唯一属性,您甚至可以将其传入:

$('.overlay').css(position);
那条线无效
css
不设置
style
属性:它直接向元素添加样式

你有两种方法。第一种是使用多个
css
调用(您可以将它们链接起来以提高性能和可读性):

或者,您可以将对象传递给
css

$('.overlay').css({
    left: position.left,
    top: position.top
});
由于这些是
位置
对象的唯一属性,您甚至可以将其传入:

$('.overlay').css(position);

如果你使用Firebug,你可以做一个
console.log(position)
来计算,如果您读取的位置正确。

如果您使用Firebug,您可以执行
控制台.log(位置)
来计算,如果你读的位置正确。

谢谢,不确定这个例子是怎么写的worked@user比较
以及
的位置。在您的示例中,您将它们作为字符串的一部分。谢谢,不确定此示例是如何实现的worked@user比较
的位置。”
。在您的示例中,您使它们成为字符串的一部分。