Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 1st, 2012  |  syntax: None  |  size: 1.75 KB  |  hits: 11  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. buildTree: function(tree, containers) {
  2.     var type = $.type(tree);
  3.     if (type == "string" || type == "number") {
  4.       return document.createTextNode(String(tree));
  5.     }
  6.     if (type != "array") {
  7.       return tree;
  8.     }
  9.     var elemDescriptor = tree[0];
  10.     var cssClasses, elemId, containerKey = [];
  11.     if (elemDescriptor.indexOf(".") > -1) {
  12.       elemDescriptor = elemDescriptor.split(".");
  13.       cssClasses = elemDescriptor.slice(1); //[song]
  14.       elemDescriptor = elemDescriptor[0]; //div
  15.     }
  16.     if (elemDescriptor.indexOf("##") > -1) {
  17.       elemDescriptor = elemDescriptor.split("##");
  18.       containerKey = (containers ? elemDescriptor.slice(1) : []);
  19.       elemDescriptor = elemDescriptor[0]; ["div"]
  20.     }
  21.     if (elemDescriptor.indexOf("#") > -1) {
  22.       elemDescriptor = elemDescriptor.split("#");
  23.       elemId = elemDescriptor[1];
  24.       elemDescriptor = elemDescriptor[0];
  25.     }
  26.     var elem = document.createElement(elemDescriptor);
  27.     if (cssClasses) {
  28.       elem.className = cssClasses.join(" ");
  29.     }
  30.     for (var i = 0; i < containerKey.length; i++) {
  31.       containers[containerKey[i]] = elem;
  32.     }
  33.     if (elemId) {
  34.       elem.id = elemId;
  35.     }
  36.     var index = 1;
  37.     var elemData = tree[index];
  38.     if (elemData) {
  39.       if (util.typeOf(elemData) == "object") {
  40.         util.applyAttributes(elem, elemData, containers);
  41.         if (elemDescriptor.toLowerCase() == "a" && !elem.href) {
  42.           elem.href = "#";
  43.         }
  44.         index = 2;
  45.       }
  46.       for (; index < tree.length; index++) {
  47.         if (tree[index] !== null && tree[index] !== undefined) {
  48.           elem.appendChild(util.buildTree(tree[index], containers));
  49.         }
  50.       }
  51.     }
  52.     if (elemDescriptor == "input") {
  53.       this.setupPlaceholders(elem);
  54.     }
  55.     return elem;
  56.   }