解释起来有点奇怪,所以我尽力而为。
我在一个移动网站上工作,我试图塑造成一个 ios 应用程序(最终)。在此页面上,我有一个菜单按钮,单击时显示/隐藏菜单。
大多数情况下一切正常,但问题是,当您单击“返回”按钮并且浏览器用完以前的位置返回时,菜单按钮会中断。当你点击它时,什么也没有发生。它表现得好像什么都没有。
错误是这样的,如果在索引(或第一页)上,单击一个链接前进,然后在浏览器上点击后退按钮,它会立即中断。
如果您在索引上,并以任何顺序点击例如 5 个链接(基本上您前进 5 次),然后,您回击到 4 次,菜单仍然有效....您基本上可以继续向前按下链接并成为好吧,尽可能地回击,并且比你前进的总次数少一秒,但仍然没问题。
一旦您达到最大后退,并且页面位置的历史记录中没有任何内容可以返回,菜单就会中断。
这是我正在处理的这个虚拟站点的链接(在我的服务器上)注意:为了测试,当它加载时,手动将浏览器缩小到大约 400 宽度,这样你就可以看到页面生效。
编辑** woops 忘记了链接 http://somdowprod.net/4testing/mobile/less1.html
这是我的代码
javascript:(我在那里留下了评论,所以你可以看到我的逻辑在哪里......也许我做错了?)
// JavaScript Document
$(document).ready(function(){
var newHash = "";
var menuBtn = $('.leftButton');
//~~~~~~~~~~~~~~~~~~~~~~~~~~~menu show/hide
menuBtn.click( menuShowHide);
//===========================//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~MENU SHOW / HIDE
function menuShowHide(){
$('#menu').toggleClass();
// if($('#menu').css("display") == "none"){
// $('#menu').css("display","block");
// } else {
// $('#menu').css("display","none");
// }
scroll(0,0);
}
//===========================//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~ACTIONS FOR THE is-loaded trick.
function isLoaded(){
$('#progress').remove();
}
//===========================//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~ACTIONS FOR THE HOME PAGE
if(newHash == ""){
$('body').append('<div id="progress">Loading...</div>');//attach this div which is made to look like a loading bubble.
$('#contentHere').load('index.html #content', isLoaded);//load the content div from the index.html file
}
//===========================//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~Load the clicked content into my container via jQuery AJAX
$('#menu a').click(function(){
menuShowHide();
window.location.hash = $(this).attr('href');
return false; //doesnt let the link jump to a new page
});
$(window).bind('hashchange',function(){
newHash = window.location.hash.substring(1);
$('body').append('<div id="progress">Loading...</div>');//attach this div which is made to look like a loading bubble.
$('#contentHere').load(newHash, isLoaded);
//console.log(newHash);
});
//===========================//
});
任何人对菜单中断的原因有任何想法吗?提前致谢。