2013-02-15 2 views
0
나는 내용이 내 웹 사이트에 표시되는 방식 변경하려면

:이 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); 

나는이 자바 스크립트를 어떻게 변경합니까를, 그래서 적절한 뒤로 버튼 기능을 가질 수있다?

내가 시도한 것 (성공하지 못함). 이들은 내가 시도했지만 위의 자바 스크립트를 변경하지 않고 솔루션입니다. 그래서 나는 그들 중 누구도 일하는 것 같지 않습니다. 여기에 설명 된 History.js 방법을 사용

+0

뒤로 버튼이 표준으로 작동하는 방식에는 어떤 문제가 있습니까? 합리적인 브라우저라면 앵커 탐색을 지원할 것입니다. –

+2

나는 사용자가 예상 한 행동을하는 개발자를 싫어한다. ... Grrrr –

+0

대신에 $ (this) .attr ("href") .indexOf (= # 0)를 테스트해야한다. 예를 들어, 테스트에서 Wikipedia 링크를 해시 태그와 일치시켜 문서의 특정 섹션에 연결할 수 있습니다. 또는 해시 태그가있는 다른 외부 링크. – MildlySerious

답변

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 페이지에서 문제를 열 ​​수 있습니다.

davis와 함께 해시 기반 라우팅을 사용하려면 hash routing extension을 포함해야합니다. 그런 다음 davis를 페이지에 포함시켜야합니다.

다음 설정은 다음 다음

하여 페이지에있는 링크를 가정 루트

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 페이지에서 문제가 무엇인지 그리고 무엇이 작동하지 않는지에 대해 자세히 알려주세요. 문제를 열어 볼 수 있습니다.

관련 문제