Я научился не использовать changeHash = false для этой цели.Убедитесь, что текущая страница всегда находится на вершине стека истории.В моем случае это единственный элемент в стеке, кроме случаев, когда диалоги вызываются.Пока что, похоже, это работает как чемпион:
function showNewPage($page) {
$page.appendTo($.mobile.pageContainer);
$('.ui-page-active').bind('pagehide',function(){$(this).removeWithDependents()});
$.mobile.changePage($page);
$.mobile.firstPage = $page;
}
Новая страница создается без хэша, поэтому URL никогда не меняется.Поскольку я на самом деле заменяю первую страницу, мне пришлось обновить $ .mobile.firstPage.Вызов removeWithDependents () вместо remove () очищает диалоги, созданные с помощью selectmenu.
К счастью, это намного лаконичнее, чем я ожидал, просто немного боли для новичка, как я, чтобы собраться вместе.Я видел несколько комментариев, советующих не «взламывать» jQM таким образом, но я думаю, что в jQM слишком много смысла, чтобы ограничивать его традиционной моделью представления на сервере.