问题1:页面的 a 链接跳转会发生异常,原页面会拼接在新页面最后
原因:JQM会将所有的指向页面的链接转换为 ajax 请求
解决:给 a 标签单独添加 data-ajax="false" ,禁用当前 a 标签指定链接使用 ajax 请求
全局设定(需在jquery.js引入后,jquery-mobile.js引入前)
$(document).bind("mobileinit", function () {
$.mobile.ajaxLinksEnabled = false;
$.mobile.ajaxEnabled=false;
});
问题2:跳转页面会自动返回顶部,导致锚链接跳转无法定位
原因:JQM页面跳转会自动执行 silentScroll() 方法,设定垂直滚动条高度为 0
解决:更改 jquery-mobile.js,阻止执行 silentScroll() 方法,如 return false。
不是最完美的解决办法,但可以暂时实现需求。
....
// Scroll page vertically: scroll to 0 to hide iOS address bar, or pass a Y value
silentScroll: function( ypos ) {
if ( $.type( ypos ) !== "number" ) {
ypos = $.mobile.defaultHomeScroll;
}
// prevent scrollstart and scrollstop events
$.event.special.scrollstart.enabled = false;
setTimeout(function() {
window.scrollTo( 0, ypos );
$.mobile.document.trigger( "silentscroll", { x: 0, y: ypos });
}, 20 );
setTimeout(function() {
$.event.special.scrollstart.enabled = true;
}, 150 );
},
...