2013-07-17 2 views
-1

я реализовал некоторую логику внутриJquery мобильного «» pagebeforeshow»не выполняется после нажатия кнопки назад

$(document).on('pagebeforeshow', '#mainPage', function(){ 
} 

но оно не нагрузки, когда пользователь eitehr нажимает клавишу возврата, чтобы вернуться к этой конкретной странице находится этот JS или при звонке

history.back(-1); return false; 

, чтобы вернуться на предыдущую страницу.

Это только запускается на выполнение, если вы делаете обновление или непосредственно перейти на страницу с помощью A HREF <>

Есть sugestions?

веселит

+2

попробовать '$ mobile.changePage()' вместо 'истории-обратно (-1)' – Omar

+0

я пытался как $ ('# мобильный'). ChangePage(); return false; и $ ('# mobile'). changePage(); return false; и он не смог бы отличить переменную $ mobile – jonney

+0

Этот способ http://stackoverflow.com/a/17545211/1771795 Кроме того, если вы удаляете 'return false', он должен работать. Тем не менее, я по-прежнему предпочитаю код в этом ответе. – Omar

ответ

1

Поскольку вы используете шаблон мульти-файлов, вам нужно получить предыдущий URL из истории document.referrer.

Demo

$('.selector').on('click', function (e) { 
    e.preventDefault(); 
    var page = document.referrer; 
    $.mobile.changePage(page, { 
    transition: 'flip', 
    reloadPage: true, // optional, force page reload. 
    reverse: true 
    }); 
}); 
Смежные вопросы