【问题标题】:Jquery offset is returning the wrong valueJquery 偏移量返回错误的值
【发布时间】:2013-11-08 15:40:42
【问题描述】:

我有一个折叠的侧边栏(使用引导程序),我正在尝试确保折叠的侧边栏 只要元素可见,它就会滚动到它。

为了做到这一点,我使用了 jQuery 的 offset(),它在第一次点击时返回 0 并在第二次单击时返回正确的偏移量。

这是我的代码:

    $.each($('[data-toggle="collapse"]'), function() {
        $(this).on("click", function() { 
            if ($(this).is('A')) { 
                event.preventDefault(); $(this).toggleClass("active");
                var x = $(this).attr("href");
                console.log($(x).offset().top)

            }
        })
    })

【问题讨论】:

  • 您可能希望使用当前版本的代码创建一个JsFiddle 示例。如果不看更多代码,很难给出建议。
  • 我同意,最好做一个 JsFiddle。为我们提供尽可能多的信息,以便为您提供帮助!听起来您的折叠元素设置为没有偏移值的display: none,因为它在页面流中不存在
  • @AdamBotley 这就是答案,我错过了 :) 谢谢。

标签: jquery offset


【解决方案1】:

设置为display: none 的项目在页面流之外,这意味着它们不占用页面内的空间。这意味着虽然它们设置为display: none,但它们没有偏移值。

在第一次单击时,浏览器会尝试查找偏移量,即 0,然后显示该元素。元素一显示,就会给出一个左/上偏移值。

Example Fiddle

【讨论】:

  • 谢谢,我自己永远也想不通!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多