Jquery mobile 不加载ajax的jQuery移动锚链接

Jquery mobile 不加载ajax的jQuery移动锚链接,jquery-mobile,hyperlink,anchor,Jquery Mobile,Hyperlink,Anchor,我已完全禁用jQuery Mobile ajax导航,如下所示: $(document).bind("mobileinit", function () { $.mobile.ajaxEnabled = false; $.mobile.linkBindingEnabled = false; $.mobile.hashListeningEnabled = false; $.mobile.pushStateEnabled = fa

我已完全禁用jQuery Mobile ajax导航,如下所示:

    $(document).bind("mobileinit", function () {
        $.mobile.ajaxEnabled = false;
        $.mobile.linkBindingEnabled = false;
        $.mobile.hashListeningEnabled = false;
        $.mobile.pushStateEnabled = false;
    });
这是完美的工作,除了锚/散列链接不工作,因为它们通常在JQM之外工作


当页面加载时,您处于页面顶部(如果加载速度足够慢,您将在锚定点看到加载,然后跳到顶部)。无论哪种方式,最终都会出现在页面顶部,而不是应该出现的锚定链接。有什么好的解决办法吗?谢谢

此修复程序只是对这个答案()中的代码进行了轻微修改,因此它应该适用于所有锚点链接,而不仅仅是特定的锚点链接。我把这个脚本放在
元素的末尾

$(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);
        });
    }
});

看起来您正在运行许多jQuery插件,包括一个名为“scrollTo”的插件。通过删除其他脚本,您确定问题是jQuery Mobile的错了吗?您有“某种东西”迫使页面在完全加载后转到顶部。@Jasper-是的,确实尝试删除所有其他脚本,结果相同。网络上有很多人都有同样的问题,包括->是的,这个问题似乎很常见,但是我给出了一个例子,可以让你大致了解如何解决这个难题。JQM将焦点放在页面顶部,因为它有
tabindex=“0”
。这是另一个不同的例子