JQuery перенаправить по клику или через 10 секунд - PullRequest
4 голосов
/ 13 июля 2010

У меня есть экран-заставка на веб-сайте, в котором есть div с идентификатором «splash». Я пытаюсь заставить div исчезать, а затем, если пользователь нажимает на div, он исчезает и перенаправляет на основной сайт. Если пользователь не нажимает, он просто исчезает и перенаправляет через 10 секунд.

Переадресация по времени работает, но не функция щелчка.

    <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>

Любая помощь будет отличной

1 Ответ

5 голосов
/ 13 июля 2010

Попробуйте это:

$(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), и я изменил ваш вызов delay () на setTimeout ().

Разница в том, что delay () не позволяет выполнять другой код jQuery в фоновом режиме, тогда как setTimeout () будет.

...