//menu 类 UM.ui.define('menu',{ show : function($obj,dir,fnname,topOffset,leftOffset){ fnname = fnname || 'position'; if(this.trigger('beforeshow') === false){ return; }else{ this.root().css($.extend({display:'block'},$obj ? { top : $obj[fnname]().top + ( dir == 'right' ? 0 : $obj.outerHeight()) - (topOffset || 0), left : $obj[fnname]().left + (dir == 'right' ? $obj.outerWidth() : 0) - (leftOffset || 0) }:{})) this.trigger('aftershow'); } }, hide : function(all){ var $parentmenu; if(this.trigger('beforehide') === false){ return; } else { if($parentmenu = this.root().data('parentmenu')){ if($parentmenu.data('parentmenu')|| all) $parentmenu.edui().hide(); } this.root().css('display','none'); this.trigger('afterhide'); } }, attachTo : function($obj){ var me = this; if(!$obj.data('$mergeObj')){ $obj.data('$mergeObj',me.root()); $obj.on('wrapclick',function(evt){ me.show() }); me.register('click',$obj,function(evt){ me.hide() }); me.data('$mergeObj',$obj) } } });