0

在我的 jQuery Mobile 应用程序中,我想在显示页面时将 UI“滑动”到某个位置,但似乎当我在pageshow事件中获得想要滑动到的页面上元素的偏移对象时,y坐标始终为 1。

我的代码看起来像这样:

$(document).on('pageshow', function() {
   var offset = $('#my-element').offset();
   // offset.top is always 1
} );

克服这个问题的最佳方法是什么?

4

1 回答 1

2

这是一个疯狂的猜测,但我只知道可能发生这种情况的一种情况。

如果您正在搜索的元素也存在于其他页面中,则可能会发生这种情况,主要是如果它会在DOM您当前正在搜索的 before 元素中找到。因为该页面不可见,所以它没有高度。

这应该有帮助,改变

var offset = $('#my-element').offset();

对此:

var offset = $.mobile.activePage.find('#my-element').offset();

$.mobile.activePage是一个选择器,可让您访问当前活动页面。它会忽略其他一切。

于 2013-06-19T08:55:27.183 回答