2010-03-10 39 views
0

我想知道哪兩個方案的工作最適合交換2聲明。比方說臨時禁用一個按鈕。在jQuery中交換類或交換內容是更好嗎

我認爲第一個也是最簡單的方法就是讓兩部分html都已經存在。而當點擊了一類沒有被交換,這樣的:

css: 
.none{display:none;} 

html init: 
<div class"somecss none">but1</div> 
<div class"somecss">but1</div> 

html changed: 
<div class"somecss none">but1</div> 
<div class"somecss">but1</div> 

第二種情況我能想到的是交換使用JavaScript的HTML的整片。我認爲那個代碼很明確。你只需要一個if語句,只需插入狀態所需的html代碼即可。

利弊

在你有更多的DOM元素我認爲第一種情形下,尤其當兩個集裝箱的HTML大。然而,在javascrip中沒有太多的事要做。

在第二種情況下,DOM是最小的,但是需要更多的JavaScript。

您認爲這兩種情況哪種最好,爲什麼?

也許你知道另一個我不知道的解決方案,我想聽聽那個。

謝謝你,祝你有美好的一天!

回答

1

我只會添加內容,如果它被請求,即ajax。 (你提到禁用按鈕 - 你也可以有$('#btn1')。attr('enabled',false);)可能是最好的選擇。

這也是像手風琴這樣的效果如何工作 - 他們隱藏內容而不是添加/刪除它。

+0

尼斯的迴應,只有2件事情不清楚與我。 1)如果我讓我們說6個項目之一,這會自動禁用另一個,或者應該這樣做。第二,如果我設置啓用屬性禁用會隱藏它,我可以調整它的值在CSS? – 2010-03-10 23:15:07

+0

1)你在談論一個手風琴或按鈕嗎?如果是手風琴,不,您必須將當前的開啓面板設置爲關閉狀態,然後爲要打開的狀態設置動畫效果。 如果你在談論按鈕,這取決於。你可以將一個類應用到一組按鈕,這將允許您將它們作爲一個組來禁用/啓用。 2)不最初 - 大多數瀏覽器變灰按鈕,但可以應用樣式爲禁止狀態: 按鈕[無效] { 顯示:無; } – Josh 2010-03-10 23:51:08

2

更改類幾乎肯定會比修改DOM快得多。但是,與其他任何東西一樣,如果性能很重要(並且可能不是這樣),那麼您真的想先嚐試一下。

將東西放在類上是很好的,因爲那樣你就可以從Javascript中獲得實際的操作,並將這些東西保存在HTML和CSS中。 Javascript處理頁面元素的動作語義,但HTML和CSS處理演示文稿。