问题描述
|
单击哈希锚(
#
)时,我们使用jscrollpane导航了一些div。在Chrome中单击“后退”按钮时,网址栏中的网址会更改,但浏览器不会导航回div。在Firefox中,它确实可以返回到上一个div。
http://www.sandBox.brightBoxstudios.com/swings/test4.html
我尝试了各种方法,包括插件,不同的jquery库版本。
另外,我尝试使活动菜单项在url锚不起作用时将所有类都更改为活动类,这很可能是由于我缺乏JavaScript知识。修复它也很棒!
解决方法
我尝试过对您的代码进行此代码修复:
$(\'ul.nav a\')
.unbind(\"click\") // to remove your binding in my console
.bind(\'click\',function(event){ // rebind event handler
var $anchor = $(this);
$(\'html,body\').stop().animate({
scrollLeft: $($anchor.attr(\'href\')).offset().left
},1500,\'easeInOutExpo\');
event.preventDefault();
// this is a trick:
location.href = $anchor.attr(\'href\');
return false;
});
和导航开始工作。自己尝试。
,我发现有一个问题几乎肯定会影响事物。
在您的JavaScript中的某个位置,哈希锚点前面加上了正斜杠,从而使结果网址看起来像这样:
http://www.sandbox.brightboxstudios.com/swings/test4.html#/section3
请注意,在“ 0”哈希之后加上正斜杠,使其成为技术上无效的URL(没有id或名称为“ 3”的值)。当我将链接悬停在链接上时,该链接不会显示在状态栏中,而只会显示在结果URL中,这使我相信它与您使用的地址插件有关(尽管我没有亲身经历)。
仅当前一个URL是不带哈希的URL(即有效URL)时,后退按钮才在Firefox中对我有效。我很难用所有已加载的插件调试您的页面,但是看看您是否可以做些事情来使这些URL有效并摆脱该正斜杠。
另外,即使这只是一个演示,您也应确保不要复制4英镑。您会多次出现#header
和#middle
。最好只是在调试时(或者总是,实际上)消除所有疑问并使用有效的标记。
希望这使您更接近解决问题。