Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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 Offset返回两个不同的结果_Javascript_Jquery_Html_Offset - Fatal编程技术网

Javascript JQuery Offset返回两个不同的结果

Javascript JQuery Offset返回两个不同的结果,javascript,jquery,html,offset,Javascript,Jquery,Html,Offset,我已经为此挣扎了好几个小时,我不愿意承认。我试图使用jqueryoffset将页面上的一些元素一个放置在另一个的正下方,但即使我传递相同的偏移值,呈现到屏幕上的值也大不相同。我的jQuery代码如下所示: init: function (element, options) { var that = this, $field = $(element), ... var offset = $field.offset(); that.ghostElement

我已经为此挣扎了好几个小时,我不愿意承认。我试图使用jqueryoffset将页面上的一些元素一个放置在另一个的正下方,但即使我传递相同的偏移值,呈现到屏幕上的值也大不相同。我的jQuery代码如下所示:

init: function (element, options) {
    var that = this,
    $field = $(element),

    ...

    var offset = $field.offset();
    that.ghostElement.offset({ top: offset.top, left: offset.left });
    that.suggestionsContainer.offset({ top: offset.top + $field.height(), left: offset.left });
<span class="autosuggest-ghost" style="top: 48px; left: 30px;"></span>

<div class="autosuggest-suggestions" style="top: 262px; left: 263.5px; display: block;">       
    <ul>
        <li><a blah...</a></li>
    </ul>
</div>
但html呈现如下所示:

init: function (element, options) {
    var that = this,
    $field = $(element),

    ...

    var offset = $field.offset();
    that.ghostElement.offset({ top: offset.top, left: offset.left });
    that.suggestionsContainer.offset({ top: offset.top + $field.height(), left: offset.left });
<span class="autosuggest-ghost" style="top: 48px; left: 30px;"></span>

<div class="autosuggest-suggestions" style="top: 262px; left: 263.5px; display: block;">       
    <ul>
        <li><a blah...</a></li>
    </ul>
</div>


  • offset()是相对于文档的,因此数字是准确的,但表示方式很奇怪。。。这完全取决于如何设置其余元素和CSS。Position()相对于父对象。但是,如果你不能完全确定CSS是怎么回事,这仍然会导致一些问题。

    offset()
    是相对于窗口的,你确定你不是在寻找
    position()
    吗?这两个元素真的是一个接一个地出现在你的问题中吗,还是真正的文档结构不同?我怀疑它们有不同的父元素,
    autosuggest ghost
    位于相对或绝对位置的元素中。