2012-06-13 59 views
1

是否有一些如何可能,使位於在最後else聲明$sliderPane.click();,運行第一if聲明?jQuery,使最後的else語句內的.click()運行第一個if語句?

任何聰明的想法將非常感謝。

$tabTwitter.on('click', function() { 

    if (twitterOpen == true) { 

     twitterOpen = false; 
     $panelTwitter.fadeOut(500); 

     $sliderPane.animate({ 
      "left" : 0 
     }, 500, function() { 
      $sliderPane.removeAttr('style');      
     }); 

    } else if (facebookOpen == true) { 

     facebookOpen = false; 
     $panelFacebook.fadeOut(500); 

     twitterOpen = true; 
     $panelTwitter.fadeIn(500); 

    } else { 

     twitterOpen = true; 
     $panelTwitter.fadeIn(500); 

     $sliderPane.css({ 
      "left":0,"cursor":"pointer" 
     }).animate({ 
      "left" : "-490px" 
     }, 500, function() { 
      $('body,html').animate({ 
       scrollTop: headerHeight - 69 
      }, 800); 
      return false; 
     }).click();     

    } 

}); 
+0

不它的工作像現在預期? – zerkms

回答

1
var clickHandler = function() { 

    if (twitterOpen == true) { 

     twitterOpen = false; 
     $panelTwitter.fadeOut(500); 

     $sliderPane.animate({ 
      "left" : 0 
     }, 500, function() { 
      $sliderPane.removeAttr('style');      
     }); 

    } else if (facebookOpen == true) { 

     facebookOpen = false; 
     $panelFacebook.fadeOut(500); 

     twitterOpen = true; 
     $panelTwitter.fadeIn(500); 

    } else { 

     twitterOpen = true; 
     $panelTwitter.fadeIn(500); 

     $sliderPane.css({ 
      "left":0,"cursor":"pointer" 
     }).animate({ 
      "left" : "-490px" 
     }, 500, function() { 
      $('body,html').animate({ 
       scrollTop: headerHeight - 69 
      }, 800); 
      return false; 
     }).click(clickHandler);     

    } 

}; 

$tabTwitter.on('click', clickHandler); 
+0

偉大的想法,工作的魅力。謝謝。 – Joshc

0

由於'if'是代碼塊中的第一條語句,因此您可以嘗試使用trigger

+0

嗯,我不知道這會工作。不會觸發只是沒有點擊運行它? – Joshc

+0

您應該能夠實際觸發元素上的點擊事件。類似於觸發器頁面上的演示。 – Cyric297

+0

很酷我已經整理過了。不管怎麼說,還是要謝謝你。 – Joshc

0

分爲命名函數。如果功能先打電話。完成。

+0

你能把它們變成功能出方這個腳本,或者他們在語句中? – Joshc

+0

上面幾乎是你的想法,無論如何。 – Joshc