2010-08-02 5 views
1

웹 페이지가 http://www.optiekmeulemeester.be/normal이고 탐색이 슬라이드되어 있습니다. 이것은 다음 코드로 발생합니다Ajax에서 뒤로 버튼을 누르면 애니메이션이 비활성화됩니다.

$(".link").click(function(){ 
    var link = $(this).attr('href'); 
    $("#middle").scrollTo(link, 800); 
    return false; 
}); 

이 작동하지만, 지금은 jQuery를 주소 (http://www.asual.com/jquery/address/)를 사용하여 뒤로 버튼을 사용하려면 노력하고있어. 내 코드가 다음으로 변경되었습니다.

$.address.change(function(event){ 
    var link = event.pathNames[0] || '#panel1'; 
    if(link != '#panel1'){ link = '#' + link;} 
    $("#middle").scrollTo(link, 800); 
}); 

모든 링크 클릭에 대한 코드는 주석으로도 반환됩니다.

내 뒤로 버튼이 활성화되어 대부분 http://www.optiekmeulemeester.be/test에서보고 테스트 할 수있는대로 작동합니다. 특별한 경우를 위해 조정할 필요가 있다고 확신하지만, 실제로 들어가기 전에 큰 문제는 제 애니메이션이 더 이상 작동하지 않는다는 것입니다.

* 편집 : 이제는 가끔은 효과가 있고 때로는 그렇지 않은 경우가 있습니다. 논리를 찾을 수 없습니다. 뒤로 버튼을 통해 링크를 클릭하는 것뿐만 아니라?!? 누구든지 내 실수 야?

표준 a (nchor) 동작을 통해 주소가 변경된 후 애니메이션 호출이 이루어지기 때문에이 작업이 필요합니까?

미리 감사드립니다. 내가 찾은하지만

+0

더 많은 테스트를 한 후에 애니메이션이 항상 뒤로 버튼을 눌렀을 때 작동한다는 것을 알았습니다. 때로는 링크를 클릭 할 때 간다. – Dante

답변

1

시도 뭔가 다음

$.address.change(function(event){ 
    $("#middle").scrollTo('#' + (event.pathNames[0] || 'panel1'), 800); 
}); 

$(".link").address(); 

몇 가지 조언 :

  • 이 ID 사이에 약간의 차이를 만드는 시도 등 대신에 Panel1, panel2의 당신의 연결을 위해 이름을 말하기 사용 브라우저는 적절한 위치로 스크롤하기위한 몇 가지 내장 된 동작을 시행 할 수 있기 때문에 컨테이너 및 주소 값에 영향을 미칩니다. 이를위한 옵션으로 스크립트 모드를 활성화하는 것을 고려하십시오.
  • 첫 번째 패널에 대해 빈 값을 사용하면 ""및 "panel1"이 아닌 첫 번째 페이지에 대해 고유 한 값을 가질 수 있습니다.
  • 내장 된 스크롤을 수정해야하는 플러그인의 줄 바꿈 옵션을 사용하는 것을 고려하십시오.
+0

많은 코드를 사용해 주셔서 감사합니다. 나는 또한 귀하의 조언을 활용할 것입니다! – Dante

1

1 대답은 아마 해결 방법이다.

$.address.change(function(event){ 
    var link = event.pathNames[0] || '#panel1'; 
    if(link != '#panel1'){ link = '#' + link;} 
    $("#middle").scrollTo(link, 800); 
}); 

$(".link").click(function(){ 
    var link = $(this).attr('href'); 
    $("#middle").scrollTo(link, 800); 
    return true; 
}); 

동일한 $ .address.change 기능 코드 + (". 링크") $에서 다른 시간에 true를 돌려 + 클릭 그래서 address.change가 해고된다.

현재 작동 중입니다. 니가 뭔가 더 잘 알고 있다면 나에게 알려줘! 같은

관련 문제