2013-02-15 67 views
0

我想改变的内容显示在我的网站的方式:我如何改变这个JavaScript我该如何改变这个JavaScript?

var FNav = { 
init: function() { 
    $("a[href*=#]").click(function(e) { 
    e.preventDefault(); 
     if($(this).attr("href").split("#")[1]) { 
      FluidNav.goTo($(this).attr("href").split("#")[1]); 
     } 
    }); 
    this.goTo("home"); 
}, 
goTo: function(page) { 
    var next_page = $("#"+page); 
    var nav_item = $('nav ul li a[href=#'+page+']'); 
    $(".page").fadeOut(500); 
    next_page.fadeIn(500); 

,这样我就可以有适当的后退按钮的功能?

我试过(不成功)。这些是我尝试过的解决方案,但没有改变上面的JavaScript。这就是为什么我认为他们都不起作用。

+0

后退按钮如何以标准方式工作,正确的方法是什么?任何合理的浏览器也将支持锚点导航。 – 2013-02-15 13:40:04

+2

我讨厌那些触及用户预期行为的开发人员.... Grrrr – 2013-02-15 13:41:43

+0

您应该测试'$(this).attr(“href”)。indexOf('#')=== 0'。例如,您现在的测试还可以将Wikipedia链接与哈希标签链接到文档中的特定部分。或带有标签的任何其他外部链接。 – MildlySerious 2013-02-15 13:45:06

回答

0

后退按钮不会奇迹般地工作。您需要编码并听取事件更改!

在history.js,it shows you right on the front page

// Bind to StateChange Event 
History.Adapter.bind(window,'statechange',function(){ // Note: We are using statechange instead of popstate 
    var State = History.getState(); // Note: We are using History.getState() instead of event.state 
    History.log(State.data, State.title, State.url); 
}); 
0

我不知道为什么你不能得到Davis.js为你工作?也许在GitHub页面上打开一个问题。

如果你想使用基于哈希的路由与戴维斯,你需要包括hash routing extension。然后,您需要在戴维斯之后将其包含在您的页面中。

下面的设置应该然后允许您处理路线

Davis.extend(Davis.hash) 

Davis(function() { 
    this.get('/:page', function (req) { 
     FluidNav.goTo(req.params.page); 
    }) 
}) 

假设你已经在你的网页链接用以下

<a href="#/page_1">Page1</a> 
<a href="#/page_2">Page2</a> 

戴维斯将采取的处理后退键照顾你,所以如果您点击Page1和Page2的链接,点击后退按钮将再次导航到Page1。

如果您有任何问题,请在GitHub页面上打开一个问题,详细说明您拥有哪些内容以及哪些内容无效,然后我可以查看它。

相关问题