jQuery offset()错误?

时间:2016-08-10 13:37:37

标签: jquery css

在某些情况下,offset()方法似乎返回错误的0/0偏移量

  1. 使用jQuery,在文档就绪时,鼠标移除a.TT选择器。

    $(' .TT')。on(' mouseover',linkMouseover)

  2. 在鼠标悬停时,应显示工具提示...

    function linkMouseover() {
                   var $this=$(this);
                   var offset = $this.offset();
                   $('#log').append('id=' + $this.attr('id') + ' offset=l' + offset.left + '/t=' + offset.top + '<br />');
                   /*...*/
    }
    
  3. 在绝对定位的div的组合中,offset()返回0,0 ......

    请在此处查看代码:

    https://jsfiddle.net/9ysckk2u/3/

    我错过了什么吗?可能是使用css-calc()进行定位的结果吗?

1 个答案:

答案 0 :(得分:1)

我不知道为什么,但是当我将鼠标悬停在.Div3元素上时,它会触发鼠标悬停,鼠标悬停和另一个鼠标悬停,它会依次显示该元素,隐藏它并再次显示它。可能在隐藏元素时调用计算偏移量的代码。所有这些都发生得非常快,我们也没有看到它发生。

但是,如果你使用jQuery hover,而不是mouseover和mouseout,一切正常:https://jsfiddle.net/velum/558e83cL/1/

function indexReady() {
    // $('.Div3').mouseover(over3);
    // $('.Div3').mouseout(out3);
    $('.Div3').hover(over3, out3);