2011-09-21 53 views
0

我正在開發一個設計選擇框的jQuery插件。 ATM文件準備就緒時,所有的HTML都會被創建並隱藏起來。當用戶點擊時,會顯示創建的代碼。但是因爲我打破了W3C規則(將隱藏幷包裹在內部(塊內部的塊級元素)),我想知道我應該創建基於選項列表並將其附加到。這不好嗎?慢?不好/良好的做法?即時JavaScript功能vs inital

謝謝!

示例代碼:

HTML:

<p> 
<select> 
    <option value="1">Value</option> 
    <option value="2">Value</option> 
</select> 
</p> 

後的文件準備:

<p> 
<span class="selectwrap"> 
    <a tabindex="0" class="select">Value</a> 
    <ul class="selectbox" style="display: block;"> 
     <li>value</li> 
     <li>value</li> 
    </ul> 
    <select style="display: none;"> 
     <option value="1">Value</option> 
     <option value="2">Value</option> 
    </select> 
</span> 
</p> 
+0

你不能像'p'那樣在'p'內放入'ul'。 –

+0

我知道,但是一旦加載了有效的文檔,JS就會爲每個選擇生成這個文件。問題是,一旦文檔被加載,是否可以爲每個select元素生成代碼,或者當用戶單擊某個元素時,是否應該爲特定選擇生成代碼。 – fallenboy

+1

取決於。我的第一個問題是,是否有充分的理由不在客戶端生成它。我的第二個問題是,是否有一個很好的理由來產生無效的HTML,當有'div'標籤做這樣的東西。 *然後*我會問是否應該在初始加載或按需生成選擇。如果沒有理由發送選擇,如果用戶從未對選擇框做任何事情,那麼它可能沒有關係,但它也取決於有多少。 –

回答

0

如果你的文檔結構是無效的,也沒關係,當你創建它,或者如果它被隱藏,它仍然無效。因此,先修復文檔結構,然後弄清楚如何最好地顯示和隱藏它。也許你可以發佈一個最小的標記示例。

將客戶端處理最小化通常是一個好主意,所以不要僅僅因爲可以在客戶端上做事情,特別是如果它沒有提供任何好處。