2010-04-24 2 views
1

У меня есть этот код, где я использую jQuery для перехода на следующую страницу, потому что я хочу, чтобы некоторые эффекты имели место до этого. Проблема в том, что все после предотвращения .Default(); похоже, не работает!jQuery preventDefault останавливает работу кода

$("a").click(function(event){ 
    event.preventDefault(); 
    $(".content-center").animate({height: "0px"}, 500); 
    navigate($(this).attr('href')); 
}); 

мне нужно вещи, чтобы это произошло именно в таком порядке, так что анимация происходит и после его завершения - загрузите следующую страницу ...

Кто-нибудь есть какие-нибудь идеи? Спасибо заранее?

Tim


Обновленный код (переходит на новую страницу, но без анимации не происходит) ---

$("a").click(function(event){ 
    event.preventDefault(); 

    var driver = $(this).attr('href'); 
    $(".content-center").animate({ 
     height: "0px" 
    }, 500, function(){ 
     navigate(driver); 
    }); 
}); 

см here

Большое спасибо за вашу помощь !!

+0

Эй, спасибо за оба ваших ответов. Теперь мой код выглядит так (обновлено выше). Страница меняется, но теперь анимация не происходит вообще! Здесь вы можете ознакомиться со страницей, где я работаю: http://bit.ly/aOeYgE Большое спасибо за помощь – Tim

ответ

2

Вам нужно поместить вызов метода навигации в обратный вызов анимации.

$("a").click(function(event){ 
    event.preventDefault(); 

    var $a = $(this); 
    $(".content-center").animate({ 
     height: "0px" 
    }, 500, function(){ 
     navigate($a.attr('href')); 
    }); 
}); 

Если вы этого не сделаете, анимация и навигация будут происходить одновременно.

Rich

+0

Извините, я все еще привык к тому, как работает stackoverflow! См. Выше! – Tim

+0

У вас есть дополнительные '}); между обработчиками событий click и hover. – kim3er

+0

А так я и делаю! Я взял это сейчас, хотя, и анимация работает, но не навигация! Argh !! Есть идеи? Спасибо за вашу помощь – Tim

0

Попробуйте использовать параметр функции обратного вызова функции одушевленного осуществить навигацию, как только анимация завершена (от бедра):

$("a").click(function() { 
    var driver = this; 
    $(".content-center").animate({height: "0px"}, 
           500, 
           function() { navigate($(driver).attr('href')); } 
          ); 

}); 
+0

Ваш пример такой же, как у меня, но вы забыли предотвратить по умолчанию щелчок, который переопределит анимацию. – kim3er

Смежные вопросы