2014-02-20 3 views
-1

자바 스크립트를 사용하여 내 sidemenu를 클릭하여 무시하고 div로 직접 이동하지 않고 div로 슬라이드합니다. 내 스크립트는 Chrome에서 잘 작동하지만 Firefox 또는 IE에서는 작동하지 않습니다. IE와 FF에서 작동하도록 내 스크립트를 어떻게 고칠 수 있습니까? 아마 코드()가에서는 event.preventDefault에 실패애니메이트 scrollTo 파이어 폭스와 IE 문제

$('#sidebar a').each(function(){ 
      var href = $(this).attr('href'); 
      console.log(href+" @!#"); 
      $(this).click(function() { 
       event.preventDefault(); 
       $('html, body').animate({ 
        scrollTop: $(href).offset().top 
       }, 1000); 
      }); 

     }); 
        </script> 
+0

'$ (href)'가 예상 결과를 반환하는지 확인하십시오. 그리고 항상 "작동하지 않는다"고 정의 해주십시오. BTW, 그것을 디버그하고 변수가 가치가 기대하지 않은 참조하십시오. 그것은 디버그하기가 어렵지 않다. –

+0

@ A.Wolff 나는 이것이 OK라고 생각한다. 즉, 사이트를 실행할 때 링크가 괜찮지 만 애니메이션이 사라 졌기 때문이다. –

+0

jsFiddle을 제공 할 수 있습니까? 왜'if (href == "# team-section")'를 사용하는 반면, 같은 정확한 코드로 ELSE를 쓰는가 ??? –

답변

0

나는 그것이 완전히 다른 할 것 :

여기 내 코드입니다. 나는 항상 콜백에서 전달 된 이벤트 객체에 대해 preventDefault를 수행합니다.

$('#sidebar').on('click', 'a', function(e){ 
    e.preventDefault(); 
    $('html, body').animate({ 
     scrollTop: $($(e.target).attr('href')).offset().top 
    }, 1000); 
}); 
+0

더 자세한 설명을 주시겠습니까? 이것을 어떻게 사용할 수 있습니까? 내 코드 대신에 동일한 것을 추가했습니다. –

+0

html을 게시 할 수 있습니까? – timing

+0

예 여기 파이어 폭스에서 작동하지 않는 내 문제의 한 예입니다 http://jsfiddle.net/Yp82f/ –

관련 문제