2011-09-21 58 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

如果你的文档结构是无效的,也没关系,当你创建它,或者如果它被隐藏,它仍然无效。因此,先修复文档结构,然后弄清楚如何最好地显示和隐藏它。也许你可以发布一个最小的标记示例。

将客户端处理最小化通常是一个好主意,所以不要仅仅因为可以在客户端上做事情,特别是如果它没有提供任何好处。