2010-06-25 170 views
1

我使用下面的代碼切換頁面上的一些東西。問題是,如果用戶點擊太快,那麼會有多個面板打開並保留在頁面上。我猜這是因爲我使用的是click()而不是toggle(),但爲了完全控制我選擇點擊功能的動畫。有沒有辦法解決這個問題?謝謝。jQuery切換錯誤

編輯:我發現的另一個錯誤是,頁面加載後,第一個面板淡出,然後再次返回,因爲在代碼末尾有.filter(':first').click();,但這用於在第一個面板上獲得活動狀態。任何替代品?

jQuery(document).ready(function() 
       { 
        var tabContainers = $('div.feature > div'); 
        tabContainers.hide().filter(':first').show(); 
        $('div.feature ul.feature-nav li a').click(function() 
        { 
         var ref = this; 
         tabContainers.filter(':visible').fadeOut(500, function() 
         { 
          tabContainers.filter(ref.hash).fadeIn(500); 
         }); 

         $('div.feature ul.feature-nav li a').removeClass('selected'); 
         $(this).addClass('selected'); 

         return false; 

        }).filter(':first').click(); 
       }); 

回答

0

錯誤2 - 你需要先隱藏元素使用或者CSS或jQuery的

+0

我不希望默認元素在加載時淡入。它應該正常顯示,並隱藏所有其他元素。 – Cameron 2010-06-25 09:29:36

+0

您需要在文檔就緒功能中不運行隱藏功能,然後隱藏所有的功能,然後顯示一個 - 因此,淡出問題 – matpol 2010-06-25 13:28:40

0

找出定義元素活躍的時候已經被點擊它,把它變成這種狀態在默認情況下在html代碼而不是你現在正在做的方式。

例如如果活動狀態是a包含類selected,則將其添加到您希望在頁面加載時激活的鏈接。