これは 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 に答える