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

このコードは、で始まるリンクのみをハイジャックする必要があります#。次に、他のいくつかの断続的なバグを修正する をscrollToElement処理します。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 に答える