在我的 jQuery Mobile 应用程序中,我想在显示页面时将 UI“滑动”到某个位置,但似乎当我在pageshow
事件中获得想要滑动到的页面上元素的偏移对象时,y
坐标始终为 1。
我的代码看起来像这样:
$(document).on('pageshow', function() {
var offset = $('#my-element').offset();
// offset.top is always 1
} );
克服这个问题的最佳方法是什么?
在我的 jQuery Mobile 应用程序中,我想在显示页面时将 UI“滑动”到某个位置,但似乎当我在pageshow
事件中获得想要滑动到的页面上元素的偏移对象时,y
坐标始终为 1。
我的代码看起来像这样:
$(document).on('pageshow', function() {
var offset = $('#my-element').offset();
// offset.top is always 1
} );
克服这个问题的最佳方法是什么?
这是一个疯狂的猜测,但我只知道可能发生这种情况的一种情况。
如果您正在搜索的元素也存在于其他页面中,则可能会发生这种情况,主要是如果它会在DOM
您当前正在搜索的 before 元素中找到。因为该页面不可见,所以它没有高度。
这应该有帮助,改变
var offset = $('#my-element').offset();
对此:
var offset = $.mobile.activePage.find('#my-element').offset();
$.mobile.activePage
是一个选择器,可让您访问当前活动页面。它会忽略其他一切。