2012-09-14 13 views
6

En la documentación de YUI; http://yuilibrary.com/yui/docs/api/files/dom_js_dom-create.js.html¿Por qué el método yui DOM-create tiene un controlador para la clase llamada '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); 
     } 

Línea 110 dice que

} else if (nodos [0] & & nodos [0] .className === 'YUI3-big-ficticia') {// usando nodo ficticio para conservar algunos atributos (p. ej. OPCIÓN no seleccionada)

¿Qué significa esto exactamente? No entiendo por qué hay una clase llamada 'yui3-big-dummy'

+0

¿te refieres a la línea 110, derecha? no la línea 100. – Jack

+0

gracias por la edición :) – xiaohao

Respuesta

2

Es porque usan esa clase más abajo en sus propias cosas internas, y simplemente no quieren pegar una clase allí que alguien realmente usará. Notarás abajo en la línea 317 que están poniendo algunas cosas allí usando esa clase, y están tratando de atacar eso. Son solo algunas cosas internas de las que generalmente no tendrás que preocuparte.

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

em, gracias. pero apuntar a eso para hacer qué? es confuso ... y ¿hay algún detalle de cómo se usa "yui3-big-dummy"? Perdonar mi curiosidad – xiaohao

+0

En los comentarios se menciona "el uso de un nodo ficticio para conservar algunos atributos (por ejemplo, OPCIÓN no seleccionada)". Eso es lo que están haciendo. – klamping

Cuestiones relacionadas