2012-09-14 23 views
6

Trong tài liệu YUI; http://yuilibrary.com/yui/docs/api/files/dom_js_dom-create.js.htmlTại sao phương pháp tạo DOM yui có trình xử lý cho lớp có tên '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); 
     } 

Đường dây 110 nói rằng

} else if (nút [0] & & nút [0] .className === 'yui3-lớn-giả') {// sử dụng nút giả để bảo tồn một số thuộc tính (ví dụ: OPTION không được chọn)

Điều này có nghĩa là gì? Tôi không hiểu tại sao có một lớp học có tên 'yui3-big-dummy'

+0

bạn đang đề cập đến dòng 110 phải không? không phải dòng 100. – Jack

+0

cảm ơn bạn đã chỉnh sửa :) – xiaohao

Trả lời

2

Đó là vì họ sử dụng lớp đó sâu hơn vào nội dung của chính họ và họ chỉ không muốn học một lớp ở đó ai đó sẽ thực sự sử dụng. Bạn sẽ nhận thấy trên dòng 317 rằng họ đang đặt một số thứ trong đó bằng cách sử dụng lớp đó, và họ đang cố gắng nhắm mục tiêu đó. Nó chỉ là một số nội dung mà bạn thường sẽ không phải lo lắng về.

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

em, cảm ơn. nhưng nhắm mục tiêu để làm gì? nó khó hiểu ... và có bất kỳ chi tiết nào "yui3-big-dummy" được sử dụng không? tha thứ cho sự tò mò của tôi – xiaohao

+0

Trong các nhận xét họ lưu ý "bằng cách sử dụng nút giả để duy trì một số thuộc tính (ví dụ: OPTION không được chọn)". Đó là khả năng những gì họ đang làm. – klamping