var args = [],\r
l = arguments.length,\r
i = 0,\r
- indexOf, xnode;\r
+ indexOf, xnode, j, n = 0, skip;\r
for( ; i < l; ++i ){\r
+ //args.push( arguments[ i ] );\r
args.push.apply( args, arguments[ i ] );\r
};\r
+ //alert( arguments[ 0 ].length + ' , ' + args.length )\r
if( ( l = args.length ) === 1 ) return new X.Dom.Node( args[ 0 ] );\r
- if( !this || this.append !== Node.prototype.append ) return new X.Dom.NodeList( args );\r
+ if( !this || this.append !== X.Dom.NodeList.prototype.append ) return new X.Dom.NodeList( args );\r
\r
- this.__ = { type : 2 };\r
- indexOf = Array.prototype.indexOf;\r
for( i = 0; i < l; ++i ){\r
xnode = args[ i ];\r
- xnode = xnode && xnode.constructor === X.Dom.Node ? xnode : new X.Dom.Node( xnode );\r
- if( xnode._xnodeType !== 0 && indexOf.call( this, xnode ) === -1 ){\r
- this[ this.length ] = xnode;\r
- ++this.length;\r
+ //xnode = xnode && xnode.constructor === X.Dom.Node ? xnode : new X.Dom.Node( xnode );\r
+ skip = false;\r
+ if( xnode._xnodeType === 0 ) continue;\r
+ for( j = 0; j < n; ++j ){\r
+ if( this[ j ] === xnode ){\r
+ skip = true;\r
+ break;\r
+ };\r
+ };\r
+ if( !skip ){\r
+ this[ n ] = xnode;\r
+ n = ++this.length; \r
};\r
};\r
};\r
X.Dom.NodeList.prototype.length = 0;\r
\r
+X.Dom.NodeList.prototype.each = function( func ){\r
+ var l = this.length,\r
+ i = 0;\r
+ for( i = 0, l = this.length; i < l; ++i ){\r
+ if( func.call( this[ i ], i ) === false ) break;\r
+ };\r
+ return this;\r
+};\r
+\r
/* --------------------------------------\r
* Fuction Base, multi, getter, setter,\r
*/\r
-(function(){\r
+X.Dom.listenOnce( X.Dom.Event.DOM_PRE_INIT, function(){\r
var target = X.Dom.NodeList.prototype,\r
src = X.Dom.Node.prototype,\r
p, v, multi;\r
-\r
for( p in src ){\r
v = src[ p ];\r
- if( typeof v === 'funciton' && !target[ p ] ){\r
+ if( X.Type.isFunction( v ) && !target[ p ] ){\r
target[ p ] = multi = new Function( [\r
- 'function functionBase(){',\r
- 'var a=arguments,s=a.callee,f=s.f,t=this,i,l=t.length;',\r
- 'if(0<l){',\r
- 'for(i=0;i<l;++i)if(i===l-1)return f.apply(t[i],a)else f.apply(t[i],a);',\r
- '}',\r
- 'return f.apply(t,a)',\r
- '}' \r
- ].join( '' ));\r
- multi.f = src[ p ];\r
+ 'var a=arguments,f=X.Dom.Node.prototype.', p, ',t=this,i,l=t.length;',\r
+ 'if(l)',\r
+ 'for(i=0;i<l;++i)if(i===l-1)return f.apply(t[i],a);else f.apply(t[i],a);',\r
+ 'return f.apply(t,a)'\r
+ ].join( '' ) );\r
};\r
};\r
-})();\r
+});\r
+\r
+\r