var self = X.Dom,\r
live = parent.getElementsByTagName( '*' ),\r
nodes = [],\r
- node;\r
- for( var i = 0, l = live.length; i < l; ++i ){\r
- nodes[ i ] = live[ i ];\r
+ node, i;\r
+ for( i = live.length; i; ){\r
+ nodes[ --i ] = live[ i ];\r
};\r
- for( i = 0; i < nodes.length; ){\r
- node = nodes[ i ];\r
- if( node.nodeType !== 1 || self.hasClassName( node, className ) === false ){\r
- nodes.splice( i, 1 );\r
- } else {\r
- ++i;\r
- };\r
+ for( i = nodes.length; i; ){\r
+ node = nodes[ --i ];\r
+ ( node.nodeType !== 1 || !node.className || !node.className.length || self.hasClass( node, className ) === false ) && nodes.splice( i, 1 );\r
};\r
return nodes;\r
}) :\r
var self = X.Dom,\r
live = parent.all,\r
nodes = [],\r
- node;\r
- for( var i = 0, l = live.length; i < l; ++i ){\r
- nodes[ i ] = live[ i ];\r
+ node, i;\r
+ for( i = live.length; i; ){\r
+ nodes[ --i ] = live[ i ];\r
};\r
- for( i = 0; i < nodes.length; ){\r
- node = nodes[ i ];\r
- if( !node.className || !node.className.length || self.hasClassName( node, className ) === false ){\r
- nodes.splice( i, 1 );\r
- } else {\r
- ++i;\r
- };\r
+ for( i = nodes.length; i; ){\r
+ node = nodes[ --i ];\r
+ ( !node.className || !node.className.length || self.hasClass( node, className ) === false ) && nodes.splice( i, 1 );\r
};\r
return nodes;\r
}) :\r
};\r
return true;\r
},\r
- createElement :\r
- document.createElement ?\r
- (function( tagName ){\r
- return document.createElement( tagName );\r
- }) :\r
- document.all ?\r
- (function( tagName ){\r
- document.body.insertAdjacentHTML( 'BeforeEnd', '<' + tagName + '>gggg<\/' + tagName + '>' );\r
- var list = document.all.tags( tagName.toUpperCase() ),\r
- ret = list[ list.length - 1 ];\r
- return list;\r
- }) :\r
- (function(){}),\r
appendChild :\r
document.appendChild ?\r
(function( target, elm ){\r
}) :\r
document.all ?\r
(function( parent, elm ){\r
- var children = parent.children,\r
- i = 0,\r
+ var children = X.Dom.getChildNodes( parent ),\r
l = children.length,\r
html = [],\r
+ i = 0,\r
child, update;\r
- if( i === 1 ){\r
- parent.innerHTML = '';\r
- return;\r
- };\r
for( ; i < l; ++i ){\r
child = children[ i ];\r
if( child !== elm ){\r
- html[ html.length ] = child.outerHTML;\r
+ html[ html.length ] = child.outerHTML || child;\r
} else {\r
update = true;\r
};\r
};\r
if( !update ) return;\r
- parent.innerHTML = html.join('');\r
+ parent.innerHTML = html.join( '' );\r
}) :\r
(function(){}),\r
insertBefore :\r
}) :\r
document.all ?\r
(function( parent, elm, elmAfter ){\r
- return elmAfter.insertAdjacentHTML( 'BeforeBegin', '<' + elm.tagName + ' class="list">' + elm.innerHTML + '<\/' + elm.tagName + '>' );\r
+ return elmAfter.insertAdjacentHTML( 'BeforeBegin', elm.outerHTML );\r
}) :\r
(function(){})\r
};\r
resize, delayResize;\r
\r
/* -----------------------------------------------\r
- * Document Ready\r
- * Dean Edwards/Matthias Miller/John Resig\r
- */\r
- function init(){\r
- var s;\r
- if( X.View.ready ) return X.Cancel.UN_LISTEN;\r
- if( s = init.script ){\r
- s.parentNode.removeChild( s );\r
- s.onreadystatechange = new Function();\r
- s.onreadystatechange = null;\r
- delete init.script;\r
- };\r
- init = void 0;\r
- X.View.ready = true;\r
- X.View.dispatch( { type : X.ViewEvent.SYS_READY, w : w, h : h } );\r
- return X.Cancel.UN_LISTEN;\r
- };\r
- /* for ie9+/Mozilla/Opera9 */\r
- if( document.addEventListener ){\r
- X.DomEvent.add( document, 'DOMContentLoaded', init );\r
- } else\r
- if( 4 < X.UA.IE ){\r
- // if this script in Head\r
- document.write( "<script id=__ie_onload defer src=javascript:void(0)><\/script>" );\r
- init.script = document.getElementById( "__ie_onload" );\r
- init.script.onreadystatechange = function(){\r
- this.readyState === 'complete' && init();\r
- };\r
- } else\r
- if( X.UA.WebKit ){ // sniff\r
- X.Timer.add( 10, function(){\r
- if( !init ) return X.Cancel.UN_LISTEN;\r
- if( 'loaded|complete'.indexOf( document.readyState ) !== -1 ) return init();\r
- });\r
- };\r
- \r
- /* for other browsers */\r
- X.DomEvent.add( window, 'load', init );\r
-\r
-/* -----------------------------------------------\r
* Resize\r
* uupaa.js\r
*/\r
X.View = X.Class._override( new X.EventDispatcher(),\r
{\r
ready : false,\r
+ _view : view,\r
getSize : ( view.innerWidth ?\r
( function(){\r
return [ view.innerWidth, view.innerHeight ];\r
return [ view.clientWidth, view.clientHeight ];\r
})\r
),\r
+ getPointerPosition : function(){\r
+ \r
+ },\r
/* 要素が視界に入った http://remysharp.com/2009/01/26/element-in-view-event-plugin/ */\r
inView : function( elm ){\r
\r
+ },\r
+ _init : function(){\r
+ var s;\r
+ if( X.View.ready ) return X.Cancel.UN_LISTEN;\r
+ if( s = X.View._script ){\r
+ s.parentNode.removeChild( s );\r
+ s.onreadystatechange = new Function();\r
+ s.onreadystatechange = null;\r
+ delete X.View._script;\r
+ };\r
+ delete X.View._init;\r
+ X.View.ready = true;\r
+ X.View.dispatch( { type : X.ViewEvent.SYS_READY } );\r
+ return X.Cancel.UN_LISTEN;\r
}\r
}\r
);\r
\r
X.View.listenOnce( X.ViewEvent.SYS_READY, function(){\r
var b, x;\r
- if( X.UA.IE ){\r
+ if( X.UA.IE && X.UA.IE < 9 ){\r
X.Timer.add( 100, resize );\r
- if( X.UA.IE < 9 ){\r
- b = document.body;\r
- b.appendChild( x = document.createElement( 'div' ) );\r
- x.style.cssText = 'width:1px;height:1px;line-height:1px;filter:progid:DXImageTransform.Microsoft.Shadow()';\r
- b.className += [ b.className === '' ? '' : ' ', 'ActiveX-', 1 < x.offsetHeight ? 'enabled' : 'disabled' ].join( '' );\r
- b.removeChild( x );\r
- };\r
+ b = document.body;\r
+ b.appendChild( x = document.createElement( 'div' ) );\r
+ x.style.cssText = 'width:1px;height:1px;line-height:1px;filter:progid:DXImageTransform.Microsoft.Shadow()';\r
+ b.className += [ b.className === '' ? '' : ' ', 'ActiveX-', 1 < x.offsetHeight ? 'enabled' : 'disabled' ].join( '' );\r
+ b.removeChild( x );\r
} else {\r
X.DomEvent.add( window, 'resize', resize );\r
};\r
return X.View;\r
})( window, document );\r
\r
+\r
+/* -----------------------------------------------\r
+ * Document Ready\r
+ * Dean Edwards/Matthias Miller/John Resig\r
+ */\r
+/* for ie9+/Mozilla/Opera9 */\r
+if( document.addEventListener ){\r
+ X.DomEvent.add( document, 'DOMContentLoaded', X.View._init );\r
+} else\r
+if( 4 < X.UA.IE ){\r
+ // if this script in Head\r
+ document.write( "<script id=__ie_onload defer src=javascript:void(0)><\/script>" );\r
+ X.View._script = document.getElementById( "__ie_onload" );\r
+ X.View._script.onreadystatechange = function(){\r
+ this.readyState === 'complete' && X.View._init();\r
+ };\r
+} else\r
+if( X.UA.WebKit ){ // sniff\r
+ X.Timer.add( 10, function(){\r
+ if( !X.View._init ) return X.Cancel.UN_LISTEN;\r
+ if( 'loaded|complete'.indexOf( document.readyState ) !== -1 ) return X.View._init();\r
+ });\r
+};\r
+\r
+/* for other browsers */\r
+X.DomEvent.add( window, 'load', X.View._init );\r
+\r
//\r
X.View.listen( X.ViewEvent.SYS_READY, function(e){ console.log( 'X.View DomReady ' + X.View.ready ) } );\r
\r