为什么yui DOM-create方法有一个名为'yui3-big-dummy'的类的处理程序?

时间:2012-09-14 02:03:45

标签: javascript html css yui yui3

在YUI文档中; http://yuilibrary.com/yui/docs/api/files/dom_js_dom-create.js.html

if (nodes.length === 1) { // return single node, breaking parentNode ref from "fragment"
            ret = nodes[0].parentNode.removeChild(nodes[0]);
        } else if (nodes[0] && nodes[0].className === 'yui3-big-dummy') { // using dummy node to preserve some attributes (e.g. OPTION not selected)
            if (nodes.length === 2) {
                ret = nodes[0].nextSibling;
            } else {
                nodes[0].parentNode.removeChild(nodes[0]); 
                ret = Y_DOM._nl2frag(nodes, doc);
            }
        } else { // return multiple nodes as a fragment
             ret = Y_DOM._nl2frag(nodes, doc);
        }

第110行说

}否则if(nodes [0]&& nodes [0] .className ==='yui3-big-dummy'){//使用虚拟节点保留一些属性(例如OPTION未选中) )

这究竟是什么意思?我不明白为什么会有一个名为'yui3-big-dummy'的课程

1 个答案:

答案 0 :(得分:2)

这是因为他们在自己内部的东西上进一步使用该类,他们只是不想在那里坚持一个人实际使用的课程。你会在第317行注意到他们在那里使用那个类放了一些东西,并且他们试图瞄准那个。这只是一些内部的东西,你通常不必担心。

return Y_DOM.create('<select><option class="yui3-big-dummy" selected></option>' + html + '</select>', doc);