2011-01-21 76 views
0

Hy,我有一個水平的CSS菜單。當點擊一個標籤時,我會切換到在CSS選擇的類之間切換。這個類只是刪除底部邊框併爲字體着色,所以它看起來像是一個活動的選項卡。這很好,問題是,我不想再點擊同一個活動標籤時再次切換。jquery防止雙擊相同的元素

例子:

- >點擊家裏 - > | 首頁 |選項卡。 - >再次點擊回家 - > |主頁|標籤取消選中。

這是現成的代碼:

$('#tabmenu li').click(function(e) { 

$(this).toggleClass("clicked"); 
    $("#tabmenu li").not(this).removeClass("clicked");  

    }); 

CSS:

#tabmenu li.clicked { 
      /*remove a piece of UL bottom-border*/ 
          border-bottom: 1px solid #fff; 
      margin-bottom: -1px; 

          /*make it show active*/ 
      border-top:1px solid #7C798E; 
      border-left:1px solid #7C798E!important; 
      border-right:1px solid #7C798E; 
     } 
     #tabmenu li.clicked a { color:#000070;} 

PS。

我覺得做這樣的:

... //哪一個元素是你 ... //臨時保存 .... //你像上次一樣嗎? ..... // YES? - >什麼都不做,NO - >切換。

有沒有更明亮的方式來做到這一點?謝謝。

+0

刪除「異常處理」的標籤,因爲它不屬於 – Agos 2011-01-21 10:05:14

回答

2

您可以添加一個條件語句,檢查點擊的li node是否已經擁有類clicked

$('#tabmenu li').click(function(e) { 
    var $self = $(this); 

    if(!$self.hasClass('clicked')) 
     $self.addClass("clicked").siblings().removeClass('clicked');  
}); 

調整了一點點。

參考文獻:.hasClass().siblings()

+0

在瀏覽網頁時,我知道必須有一個簡單的解決方案(我已經begon索引他們唯一和保存溫度檢查)...感謝解決方案。 – PathOfNeo 2011-01-21 10:32:36