Javascript iScroll url哈希更改支持
这是iScroll的一个已知问题,似乎只有在iOS5中菜单完全停止工作时才会发生。我在iScroll中的所有子链接都是散列锚。有人对此有解决办法吗?我的处理方法是劫持锚链接本身,并用Javascript iScroll url哈希更改支持,javascript,iscroll,Javascript,Iscroll,这是iScroll的一个已知问题,似乎只有在iOS5中菜单完全停止工作时才会发生。我在iScroll中的所有子链接都是散列锚。有人对此有解决办法吗?我的处理方法是劫持锚链接本身,并用scrollToElement调用替换它们 // Hijack hash anchors and scroll to them $('a').click ( function (e) { var id = $(this).attr('href'); if (id.substr(0,1) == '#')
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;
}
});
此代码应仅劫持以#
开头的链接。然后,它在setTimeout
中处理scrollToElement
,修复其他一些间歇性错误。只要你的锚正确地用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);
}
});