2012-05-14 91 views
0

如果我正在討論這個錯誤,那就打我吧,我是初學者。基於元素ID更改分類值

這是我的設置,它與Outlook的UI在視覺上非常相似。

左窗格(浮動div)包含您可以點擊的容器列表(如電子郵件)。右側窗格包含一組不可見的容器,當它們的類更改爲不同的css類時,該容器應該可見。

我試圖設置它,如果你點擊左邊窗格中的元素,它會執行一個onclick javascript動作(存儲在一個外部.js文件中),它切換兩個css之間的正確的div類的值類。

左窗格div中的onclick將$ _row ['uniqueID']傳遞給該函數。這是唯一遞增的列名稱。它也是右窗格的ID值。

把這完全放在一起,有人可以指導我如何做到這一點?

左側窗格中...

<div onclick=\"toggleMenu('".$row['uniqueIdentifier'],"'); \"> 

右窗格中...

<div id=".$row['uniqueIdentifier']," class=\"mL\"> 

CSS ...

div.mL {display:none;} 
div.mL.active {display:block;} 
+0

你爲什麼要逃避類名? – undefined

回答

2
function toggleMenu(div){ 
    $('#'+div).addClass('active'); 
} 

jQuery有.addClass().removeClass()方法。

我想這就是你要的,如果沒有,請告訴我。

+0

謝謝!給我的語法。我的工作實際上非常接近,只是缺少幾個字符。 'function toggleMenu(div){('#'+ div).toggleClass('active'); }'好像很好用 –

+0

很高興聽到它,如果你的問題解決了,請標記爲已接受。 – MaddHacker

1

通過不改變太多的代碼,我建議這樣做:

div.mL {display:none;} 
div.mLactive {display:block;} 

我抹去了點,所以ü現在有2個不同的類別。 所以點擊你只需將正確的ID改爲mLactive即可。在'jquery'中,可以使用$(#'theid')。addClass('mLactive');}來完成這個工作。 這隻會添加新的類。你也想用$(#'theid')去除以前的類。removeClass('mL');另一種方法:$(#'theid')。attr(「class」,「mLactive」);這不需要刪除以前的類。你的選擇。這種方法的另一個優點是,JavaScript有一個方法可以做到不需要Jquery。 jQuery的也有簡單的選項$(#'theid')。show();和$(#'theid')。hide()btw。

+0

感謝您的信息。我相信'function toggleMenu(div){('#'+ div).toggleClass('active'); '會做到這一點,但以上是很好的知道,因爲我可以將其應用於其他項目。現在只需要弄清楚如何一次只允許一個div切換到活動類。儘管我會進行調查,但這是一個單獨的問題。 –

+0

你可以這樣做:如果點擊,獲取具有活動類的元素。如果找不到元素,則可以切換元素。但是,如果在主動類中找到元素,則什麼也不做。使用禁用的按鈕可能是一種更好的方式,但需要更多的代碼。 – Anonymous