これは iScroll の既知の問題であり、メニューが完全に機能しなくなる iOS5 でのみ発生するようです。iScroll のすべてのサブ リンクはハッシュ アンカーです。これに対する回避策はありますか?
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 に答える