Двойной щелчок по кнопке "Назад" приводит к возврату сайта на две страницы
Если у меня есть структура страницы с тремя и более страницами, где p1 ссылается на p2, который ссылается на p3, и я дважды щелкаю кнопку "Назад" на p3. Это приведет к тому, что страница вернется к p2, а затем мгновенно вернется к p1.
Есть ли способ предотвратить такое поведение?
1 ответ
Решение
Создайте пользовательский атрибут data-clickks и сохраните в нем количество кликов. Когда вы вернетесь назад на страницу, сбросьте счетчик.
Живой пример:
JS
$('#p3').live('pageshow', function(event, ui) {
$('#goBackOne').click(function() {
// if 0 (zero) clicks go back 1
if($('#goBackOne').attr('data-clicks') == 0) {
$('#goBackOne').attr('data-clicks', 1);
history.back(-1);
}
});
});
$('#p2').live('pageshow', function(event, ui) {
// reset to 0 (zero)
$('#goBackOne').attr('data-clicks', 0);
});
HTML
<div data-role="page" id="p1">
<a href="#p2" type="button">Go to page 2</a>
</div>
<div data-role="page" id="p2">
<a href="#p3" type="button">Go to page 3</a>
</div>
<div data-role="page" id="p3">
<a href="#" type="button" id="goBackOne" data-clicks="0">Back</a>
</div>