X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=0.6.x%2Fjs%2F02_dom%2F00_XDoc.js;h=8d71bc0e7ae0cd511d74833b55b38c391eb786f5;hb=486d19a050444ad4d5277fa65a3da437f778ff0f;hp=7232833c70bdfb07edbd367d65f91f303e886e1a;hpb=86c591d2888cf7b24365c1950646fb1f6190efd1;p=pettanr%2FclientJs.git diff --git a/0.6.x/js/02_dom/00_XDoc.js b/0.6.x/js/02_dom/00_XDoc.js index 7232833..8d71bc0 100644 --- a/0.6.x/js/02_dom/00_XDoc.js +++ b/0.6.x/js/02_dom/00_XDoc.js @@ -9,13 +9,24 @@ X[ 'Doc' ] = { * @alias X.Doc.listen */ 'listen' : function( type, arg1, arg2, arg3 ){ + var f; + if( type <= X_ViewPort_readyState && type === 'DOMContentLoaded' ){ /* * X.Event.XDOM_READY 以後に listen した場合の対策 */ X_ViewPort_document[ 'asyncDispatch' ]( type ); }; - type && arg1 && X_ViewPort_document[ 'listen' ]( type, arg1, arg2, arg3 ); + + f = X_Closure_classifyCallbackArgs( arg1, arg2, arg3 ); + if( !f.cbKind ){ + X_ViewPort_document[ 'listen' ]( type, this, arg1 ); + } else + if( f.cbKind === X_CLOSURE_FUNC_ONLY ){ + X_ViewPort_document[ 'listen' ]( type, this, f.func, f.supplement ); + } else { + X_ViewPort_document[ 'listen' ]( type, arg1, arg2, arg3 ); + }; return X[ 'Doc' ]; }, @@ -24,13 +35,23 @@ X[ 'Doc' ] = { * @alias X.Doc.listenOnce */ 'listenOnce' : function( type, arg1, arg2, arg3 ){ + var f; + if( type <= X_ViewPort_readyState && type === 'DOMContentLoaded' ){ /* * X.Event.XDOM_READY 以後に listen した場合の対策 */ X_ViewPort_document[ 'asyncDispatch' ]( type ); }; - type && arg1 && X_ViewPort_document[ 'listenOnce' ]( type, arg1, arg2, arg3 ); + + f = X_Closure_classifyCallbackArgs( arg1, arg2, arg3 ); + if( !f.cbKind ){ + X_ViewPort_document[ 'listenOnce' ]( type, this, arg1 ); + } else + if( f.cbKind === X_CLOSURE_FUNC_ONLY ){ + X_ViewPort_document[ 'listenOnce' ]( type, this, f.func, f.supplement ); + }; + X_ViewPort_document[ 'listenOnce' ]( type, arg1, arg2, arg3 ); return X[ 'Doc' ]; }, @@ -39,7 +60,16 @@ X[ 'Doc' ] = { * @alias X.Doc.unlisten */ 'unlisten' : function( type, arg1, arg2, arg3 ){ - type && arg1 && X_ViewPort_document[ 'unlisten' ]( type, arg1, arg2, arg3 ); + var f = X_Closure_classifyCallbackArgs( arg1, arg2, arg3 ); + + if( !f.cbKind ){ + X_ViewPort_document[ 'unlisten' ]( type, this, arg1 ); + } else + if( f.cbKind === X_CLOSURE_FUNC_ONLY ){ + X_ViewPort_document[ 'unlisten' ]( type, this, f.func, f.supplement ); + } else { + X_ViewPort_document[ 'unlisten' ]( type, arg1, arg2, arg3 ); + }; return X[ 'Doc' ]; }, @@ -48,6 +78,14 @@ X[ 'Doc' ] = { * @alias X.Doc.listening */ 'listening' : function( type, arg1, arg2, arg3 ){ + var f = X_Closure_classifyCallbackArgs( arg1, arg2, arg3 ); + + if( !f.cbKind ){ + return X_ViewPort_document[ 'listening' ]( type, this, arg1 ); + } else + if( f.cbKind === X_CLOSURE_FUNC_ONLY ){ + return X_ViewPort_document[ 'listening' ]( type, this, f.func, f.supplement ); + }; return X_ViewPort_document[ 'listening' ]( type, arg1, arg2, arg3 ); },