我想在加载页面时滚动到特定的div。 Jquery Mobile 1.4。 如果只加载页面,它可以正常工作,但如果使用API加载则不起作用。
使用API加载。
$('#schedule-a-call-collapsible').on("collapsibleexpand", function(event, ui){
$( "body" ).pagecontainer( "change", 'schedule-a-call-mobile.html', {transition: 'slideup'} );
}
滚动只是
Behave.prototype.doScrollTop = function(element) {
var pos = $(element).offset().top;
pos -= $('div.ui-header-fixed').outerHeight();
$("html, body").animate({ "scrollTop": pos }, 500);
};
该事件不会被解雇。
jQuery('body').on("pagecontainershow", function (e, ui) {
console.log("scrolling timezone");
console.log(jQuery('#schedule-a-call-timezone').offset().top);
$('#schedule-a-call-timezone-col').collapsible('expand');
behave.doScrollTop(jQuery('#schedule-a-call-timezone-col'));
});
理由是,在扩大可折叠性时,流程变得更加复杂。我想隐藏其他可折叠选项,除非有人滚动并逐步完成工作流程,就好像它是一组新页面一样。
由于 约翰
答案 0 :(得分:0)
解决方案是使用location.href。
$('body').delegate('#collapsible-schedule-a-call', "collapsibleexpand", function (e, ui) {
e.preventDefault();
document.location.href = 'schedule-a-call-mobile.html';
});
更改了侦听的事件,以便完全避免pagecontainershow事件。
根本原因是尝试建立一个移动转换与桌面转换不同的网站(在移动设备上向左滑动等)。当涉及其他框架时,jquery mobile是一个挑战。