2010-07-13 9 views
4

"스플래시"라는 ID를 가진 div가있는 웹 사이트에 스플래시 화면이 있습니다. 사용자가 div로 이동하면 div가 사라집니다. 메인 사이트로 나가고 redircts. 사용자가 클릭하지 않으면 페이드 아웃되고 10 초 후에 리디렉션됩니다.클릭 후 10 초 후에 jquery 리디렉션

시간 초과 리디렉션은 작동하지만 클릭 기능은 작동하지 않습니다.

<script type="text/javascript"> 
    $(document).ready(function() { 
    $('#splash').hide(); 
     $('#splash').fadeIn(1000, function() { 
       $(this).delay(10000).fadeOut(1000, function() { 
       window.location = 'http://www.examle.com'; }); 
       $(this).click().fadeOut(1000,function() { 
       window.location = 'http://www.example.com'; }); 
     }); 
    }); 
</script> 

어떤 도움을

답변

5

이 시도 좋은 것 :

$(document).ready(function() { 
    $('#splash').hide(); 
    $('#splash').click(function(){ 
      $(this).fadeOut(1000,function() { 
        window.location = 'http://www.example.com'; }); 
      }); 
    $('#splash').fadeIn(1000, function() { 
      window.setTimeout (function() { 
      $('#splash').fadeOut(1000, function() { 
       window.location = 'http://www.example.com'; }) } 
      , 10000); 
    }); 
});​ 

나는 예를했습니다 변경 : 내가 외부 클릭 핸들러를 설정 이동 한

fadeOut 함수 (더 나은 연습, IMHO) 및 지연() 호출을 setTimeout()로 변경했습니다.

delay()는 다른 jQuery 코드가 백그라운드에서 실행되는 것을 허용하지 않지만 setTimeout()은 백그라운드에서 실행되도록 허용하지 않습니다.

+0

감사합니다. 위의 코드에서 click 기능이 작동하지 않습니다. – BandonRandon

+0

죄송합니다. 오류는 내가 처음에 생각한 것이 아닙니다. 업데이트 된 코드 샘플을보십시오 :) – Josiah

+0

문제는 그것이 클릭 할 때'delay()'를 멈추지 않는다는 것입니다. 따라서 클릭을하면 지연이 끝날 때까지 기다려야합니다. 기묘한. (그러나 그것은 당신이 발견 한 것처럼 보입니다 :)) – BandonRandon

관련 문제