Jquery offset返回了错误的值
我有一个折叠的侧边栏(使用bootstrap),我正在尝试确保折叠的侧边栏 元素在显示时滚动到 为了做到这一点,我使用jQuery的offset(),它在第一次单击时返回0 并在第二次单击时返回正确的偏移量 这是我的密码:Jquery offset返回了错误的值,jquery,offset,Jquery,Offset,我有一个折叠的侧边栏(使用bootstrap),我正在尝试确保折叠的侧边栏 元素在显示时滚动到 为了做到这一点,我使用jQuery的offset(),它在第一次单击时返回0 并在第二次单击时返回正确的偏移量 这是我的密码: $.each($('[data-toggle="collapse"]'), function() { $(this).on("click", function() { if ($(this).is('A')) {
$.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)
}
})
})
设置为
display:none
的项目位于页面流之外,这意味着它们不会占用页面内的空间。这意味着,虽然它们被设置为显示:无
,但它们没有偏移值
第一次单击时,浏览器将尝试查找偏移量,即0,然后显示图元。显示元素后,将立即给出“左偏移/顶偏移”值
您可能希望使用当前版本的代码创建一个示例。在没有看到更多代码的情况下给出推荐是非常困难的。我同意,最好做一个JSFIDLE。给我们尽可能多的信息,以帮助您!听起来您的折叠元素被设置为
display:none
,它没有偏移值,因为它在页面中不存在flow@AdamBotley这就是答案,我错过了:)谢谢。谢天谢地,我自己永远也不会明白这一点!