1

这是 iScroll 的一个已知问题,它似乎只发生在菜单完全停止工作的 iOS5 中。我在 iScroll 中的所有子链接都是哈希锚。有没有人有解决方法?

4

1 回答 1

2

我处理它的方式是自己劫持锚链接并用scrollToElement调用替换它们。

// Hijack hash anchors and scroll to them
$('a').click ( function (e) {
    var id = $(this).attr('href');
    if (id.substr(0,1) == '#') {
        e.preventDefault();
        setTimeout( function() {
            scroller.scrollToElement ( id, 0 );
        }, 0);
        return false;
    } else {
        return true;
    }
});

此代码应该只劫持以 . 开头的链接#。然后它处理修复了一些其他间歇性错误的scrollToElementin a 。setTimeout只要您的锚点正确命名为 id,它对我来说效果很好。如果您使用name属性而不是id属性,则需要重写这些。

如果为空,此代码将复制name属性并将它们放入属性中。id不过,您可能不需要这个。

$('a').each (function (i, e) {
    var n = $(e).attr('name');
    var id = $(e).attr('id');
    if ( typeof id == 'undefined' || id === null || id === '') {
        $(e).attr('id', n);
    }
});
于 2013-01-24T21:56:51.953 回答