2013-01-16 69 views
0

我正在使用以下JQuery代碼來打開一對開始關閉的門。不同的菜單項導致門關閉,然後重新打開下面的相應圖片。除了第一次打開門時,所有的一切都很順利,右側的門可以重新回到原來的位置並再次進行動畫處理。我在這裏做錯了什麼?請看看#leftdoor和#rightdoor這些是我遇到問題的div。JQuery動畫中的回調

var doorOpen = false; 

     $("a[href=#bugz]").click(function() { 

      // If door is open then close doors 
      if (doorOpen) { 
       var duration = 1000; 
      } else { 
       var duration = 0; 
      } 

      $('.title1,.title2,.title3,.title4,.title5,.fade1,.fade2,.fade3,.fade4,.fade5,').animate({ 
      opacity: 0, 
      }, 1000); 
      $('.fade5,.fade2,.fade3,.fade4').css('zIndex', 1); 
      $('.fade1').css('zIndex', 20); 

      $("#rightdoor,#leftdoor").animate(
       {"marginLeft":"0px"}, 
       {duration:duration, 
        complete:function() { 
         $('.pic2,.pic3,.pic4,.pic5').css('zIndex', 1); //puts wrong pics in back 
         $('.pic1').css('zIndex', 2); //brings right pic into view 
         $('#rightdoor').animate({ //opens doors again 
         marginLeft: "150px", 
         }, 1000); 
         $('#leftdoor').animate({ 
         marginLeft: "-150px", 
         }, 1000); 
         $('.title1').animate({ 
         "opacity": "0.75", 
         }, 1000); 
         $('.fade1').animate({ 
         "opacity": "1", 
         }, 1000); 
        } 
       } 
      ); 

      doorOpen = true; 


     }); 

每次再次運行時,它都能正常工作。這只是當門開始了第一次關閉時出現的問題

回答

0

嘗試

doorOpen = true; 
return false; 

//instead of 
doorOpen = true; 

如果不工作

嘗試

$("a[href=#bugz]").click(function(e) { 
    e.stopPropagation() 
+0

沒有運氣。如果它有幫助 - 門打開,,然後右門重置,並在.fade1和.title1類同時重新打開。在第一次之後,.fade1,.title1和開門同步動畫 –

+0

嘗試使用$(「#leftdoor,#rightdoor」)。animate代替。我很好奇看到會發生什麼。我沒有時間加載它並嘗試立即測試,所以這些都是黑暗中的鏡頭。 –

+0

是的,我早些時候試過。它沒有改變任何東西。無論如何感謝 –