2012-09-14 17 views
6

Nella documentazione YUI; http://yuilibrary.com/yui/docs/api/files/dom_js_dom-create.js.htmlPerché il metodo di creazione DOM di yui ha un gestore per la classe denominata '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); 
     } 

Linea 110 dice che

} else if (nodi [0] & & nodi [0] .className === 'yui3-big-dummy') {// utilizzando nodo fittizio per preservare alcuni attributi (ad es. OPZIONE non selezionata)

Cosa significa esattamente? Non capisco perché ci sia una classe chiamata 'yui3-big-dummy'

+0

si riferisce alla linea 110 destra? non linea 100. – Jack

+0

grazie per la modifica :) – xiaohao

risposta

2

È perché usano quella classe più in basso sulle loro cose interne, e semplicemente non vogliono seguire una lezione lì che qualcuno effettivamente userà. Sulla linea 317 noterai che stanno mettendo alcune cose lì usando quella classe, e stanno cercando di farlo. Sono solo alcune cose interne di cui generalmente non dovrai preoccuparti.

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

em, grazie. ma bersaglio quello per fare cosa? è confuso ... e ci sono dettagli su come si usa "yui3-big-dummy"? perdona la mia curiosità – xiaohao

+0

Nei commenti si nota "utilizzando il nodo fittizio per conservare alcuni attributi (ad esempio OPZIONE non selezionata)". Questo è probabilmente quello che stanno facendo. – klamping