我完全禁用了jQuery Mobile ajax导航,如下所示:
$(document).bind("mobileinit", function () {
$.mobile.ajaxEnabled = false;
$.mobile.linkBindingEnabled = false;
$.mobile.hashListeningEnabled = false;
$.mobile.pushStateEnabled = false;
});
这完全有效,除了锚点/哈希链接不像JQM之外通常那样工作。
当页面加载时,您位于页面顶部(如果加载速度足够慢,您将看到锚点处的负载,然后跳到顶部)。无论哪种方式,你最终都在页面的顶部,而不是你应该在锚点链接。这有什么好的解决方法吗?谢谢!
答案 0 :(得分:1)
这个修补程序只是稍微修改了这个答案(https://stackoverflow.com/a/14286613/1462775)的代码,因此它应该适用于所有锚链接,而不仅仅是特定的链接。我把这个脚本放在<head>
元素的末尾。
$(document).bind('pageshow',function(e) {
var $anchor;
$anchor = $(location.hash);
if ($anchor) {
// Get y pos of anchor element.
var pos = $anchor.offset().top;
// Don't use silentScroll() as it interferes with the automatic
// silentScroll(0) call done by JQM on page load. Instead, register
// a one-shot 'silentscroll' handler that performs a plain
// window.scrollTo() afterward.
$(document).bind('silentscroll',function(e,data) {
$(this).unbind(e);
window.scrollTo(0, pos);
});
}
});