2012-09-14 5 views
6

In der YUI-Dokumentation; http://yuilibrary.com/yui/docs/api/files/dom_js_dom-create.js.htmlWarum hat die Methode yui DOM-create einen Handler für die Klasse 'yui3-big-dummy'?

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); 
     } 

Linie 110 sagt, dass

} else if (Knoten [0] & & Knoten [0] .className === 'YUI3-big-Dummy') {// Dummy-Knoten mit um einige Attribute zu erhalten (zB OPTION nicht ausgewählt)

Was bedeutet das genau? Ich verstehe nicht, warum es eine Klasse mit dem Namen 'yui3-big-dummy' gibt.

+0

Sie beziehen sich auf Linie 110 richtig? nicht Linie 100. – Jack

+0

danke für die Bearbeitung :) – xiaohao

Antwort

2

Es ist, weil sie diese Klasse weiter unten auf ihren eigenen internen Sachen verwenden, und sie wollen einfach keine Klasse dort stecken jemand wird tatsächlich verwenden. Sie werden in Zeile 317 feststellen, dass sie mit dieser Klasse ein paar Sachen hineinlegen, und sie versuchen, das zu erreichen. Es sind nur einige interne Dinge, über die Sie sich normalerweise keine Gedanken machen müssen.

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

em, danke. aber zielen darauf was zu tun? es ist verwirrend ... und gibt es ein Detail wie "yui3-big-dummy" benutzt wird? Verzeihen Sie meine Neugier – xiaohao

+0

In den Kommentaren merken sie "Dummy-Knoten verwenden, um einige Attribute zu erhalten (z. B. OPTION nicht ausgewählt)". Das machen sie wahrscheinlich. – klamping

Verwandte Themen