X-Git-Url: http://git.osdn.jp/view?p=pettanr%2FclientJs.git;a=blobdiff_plain;f=0.6.x%2Fjs%2F01_core%2F15_XEventDispatcher.js;fp=0.6.x%2Fjs%2F01_core%2F15_XEventDispatcher.js;h=afa52c7cb7a20da13d453ea515b852539961fde1;hp=5a9864a7c49128ef149c81b9cfc1d2461e8261b8;hb=ef25747bebf1799d49f9bd0d64e339da9ea61d13;hpb=d56e8cc1e13089eb6cbc9dcc6900d7f1828b93df diff --git a/0.6.x/js/01_core/15_XEventDispatcher.js b/0.6.x/js/01_core/15_XEventDispatcher.js index 5a9864a..afa52c7 100644 --- a/0.6.x/js/01_core/15_XEventDispatcher.js +++ b/0.6.x/js/01_core/15_XEventDispatcher.js @@ -733,7 +733,8 @@ function X_EventDispatcher_actualRemoveEvent( that, type, raw, list, skip ){ // TODO ブラウザからの呼び出しの最後に登録された関数を呼び出す機能(例えば画面の更新) -var X_EventDispatcher_CURRENT_EVENTS = []; +var X_EventDispatcher_CURRENT_EVENTS = []; +var X_EventDispatcher_ignoreActualEvent = ''; // handleEvent を拡張可能にするために、クロージャに移動した // Is this in regard to the Safari 1.x preventDefault bug on click/dblclick? @@ -741,8 +742,16 @@ var X_EventDispatcher_CURRENT_EVENTS = []; var X_EventDispatcher_actualHandleEvent = X_UA_EVENT.IE4 || X_UA_EVENT.IE ? // ie45678 EVENT_IE & EVENT_DOM0 for ie4 (function(){ - var e = event, ret, - ev = new X_DomEvent( e, this, this[ '_rawObject' ] ); + var e = event, + elm = this[ '_rawObject' ], + ev, ret; + + /* if( e.type === X_EventDispatcher_ignoreActualEvent ){ + e.cancelBubble = true; + return; + }; */ + + ev = new X_DomEvent( e, this, elm ); X_EventDispatcher_CURRENT_EVENTS[ X_EventDispatcher_CURRENT_EVENTS.length ] = ev; @@ -754,16 +763,21 @@ var X_EventDispatcher_actualHandleEvent = e.cancelBubble = true; }; if( ret & X_CALLBACK_PREVENT_DEFAULT ){ - this[ '_tag' ] === 'A' && this[ '_rawObject' ].blur(); + this[ '_tag' ] === 'A' && elm.blur(); return e.returnValue = false; }; }) : //X_UA_EVENT.W3C || X_UA_EVENT.DOM0 (function( e ){ - var ev = new X_DomEvent( e, this ), - ret = X_CALLBACK_NONE, - i, l; + var ret = X_CALLBACK_NONE, + ev, i, l; + + /* if( e.type === X_EventDispatcher_ignoreActualEvent ){ + e.stopPropagation(); + return; + }; */ + ev = new X_DomEvent( e, this ); X_EventDispatcher_CURRENT_EVENTS[ X_EventDispatcher_CURRENT_EVENTS.length ] = ev; // touch event -> pointer