if( !this.types[ type ] ) return;\r
var e = Utils.extend( {}, gesture );\r
e.type = type;\r
- console.log( 'trigger : ' + type );\r
return this.uinode.dispatch( e );\r
};\r
\r
return hammer.trigger( X.UI.Event.DOUBLE_TAP, e );\r
} else\r
// do a single tap\r
- if( hammer.options.tap_always ){\r
+ if( hammer.options.tap_always && Detection.current.name !== 'tap' ){ // EventFire中にalert すると mouseleave で再び呼ばれるのを防ぐ\r
Detection.current.name = 'tap';\r
return hammer.trigger( X.UI.Event.TAP, e );\r
};\r
sysOnly = false,
ret = X.Callback.NONE,
list, parent, _ret;
- //if( type !== '' + X.UI.Event._POINTER_MOVE && type !== '' + X.UI.Event._TOUCH_MOVE && type !== '' + X.UI.Event._MOUSE_MOVE ){
- //console.log( e.type + ' ' + type + ' x:' + x + ', y:' + y );
- //};
+
+ if( !data ) return ret;
+
+ // mouseup で alert を出すと mouseleave が発生、ということでイベント中のイベント発火を禁止
+ // gesture にも手当てが必要
+ if( data._eventBudy ) return X.Callback.STOP_PROPAGATION | _ret & X.Callback.PREVENT_DEFAULT;
+ data._eventBudy = true;
+
+ if( type !== '' + X.UI.Event._POINTER_MOVE && type !== '' + X.UI.Event._TOUCH_MOVE && type !== '' + X.UI.Event._MOUSE_MOVE ){
+ console.log( e.type + ' ' + type + ' x:' + x + ', y:' + y );
+ };
e.type = type;
- if( data && ( data = data.monopolyNodeData ) && ( ret = data.dispatch( e ) ) & X.Callback.MONOPOLY ) return ret;
-
- if( X.UI.currentRootData === null ) return ret;
+ if( data && ( data = data.monopolyNodeData ) && ( ret = data.dispatch( e ) ) & X.Callback.MONOPOLY ){
+ delete X.UI.currentRootData._eventBudy;
+ return ret;
+ };
list = X.UI.currentRootData.hoverList;
( X.UI.currentRootData.targetNodeData = X.UI.currentRootData ).capcher( x, y );
data.hovering = true;
};
};
+ delete X.UI.currentRootData._eventBudy;
return ret;
};
eventCounter : null,
cursorStyle : null,
+ _eventBudy : false,
+
Constructor : function( layout, args ){
this.SuperConstructor( layout, args );