2015-01-02 2 views
2

history.js를 사용하여 ajax 호출에 상태 인식 URL을 구현했습니다 (pushState 메소드 사용). 나는 모든 브라우저의 버튼을 다시 클릭 이제 때, 내 아약스를 사용하여 이전 상태의 내용을로드해야 method.For이 내가 수행 한 다음history.js를 사용하는 뒤로 버튼 클릭 이벤트에 문제가 있음

$(function() { 
    // history.js 
    History.Adapter.bind(window, 'statechange', function() { 
     var State = History.getState(); 
     callAjax(State.data.loadUrl); 
    }); 
}); 

을하지만이 코드는/앞으로에뿐만 아니라 모든 상태 변화에 실행 뒤로. 난 그냥 모든 브라우저의 포워드/백 워드 이벤트에서 그것을 실행하고 싶다. 이것을 얻으려면 어떻게해야합니까?

도움을 주시면 감사하겠습니다.

+0

가능한 복제본 [History.js에서 뒤로 버튼을 눌렀을 때를 알 수있는 방법이 있습니까?] (http://stackoverflow.com/questions/8211068/is-there-a-way-in-history-js) - 언제 - 다시 - 버튼을 눌렀는지 알고 싶습니다.) – ianaya89

+0

답변 해 주셔서 감사합니다. 그러나 나는 이미 그것으로 시도하고 작동하지 않습니다. 그 대답을 설명해 주시겠습니까? in은 처음에 manualStateChange의 값을 설정 한 다음 동일한 값을 확인합니다. 왜 그렇게? – Ankita

답변

0

나는 다음과 같은 짓을 :

$(function() { 
// history.js 
History.Adapter.bind(window, 'statechange', function() { 
    if (manualStateChange == true) { 
     var State = History.getState(); 
     callAjax(State.data.loadUrl); 
    } 
    manualStateChange = true; 
});}); 

을 내가 URL의 satate을 변경할 때 나는 값 설정 :

manualStateChange = 거짓을;

jquery 함수에서 manualStateChange에 true 값을 설정하면 모든 상태 변경시 함수가 호출됩니다. 그래서 내 코드에서 해당 줄을 제거하고 그것이 나를 위해 작동합니다.

관련 문제