1 /**
  2  * @example
  3  *     	$E.eventProxy(
  4 			confirm.container,
  5 			{
  6 				".confirm_select click": function(e) {
  7 					var check= J.dom.mini(".confirm_remove_select", confirm.container)[0];
  8 					if(check) {
  9 		        		if(check.checked) {
 10 		        			check.checked= false;
 11 		        		}else {
 12 		        			check.checked= true;
 13 		        		}
 14 	        		}
 15 				},
 16 				".confirm_htmlAllName,.confirm_avatar click": function(e) {
 17 					alloy.portal.runApp("userDetails", user.uin);
 18 				}
 19 			}
 20 		);
 21  */
 22 Jx().$package(function(J){
 23     var $E= J.event;
 24     var hash= {"#":"id", ".":"className", "@":"el","!":"!"};
 25     var eventsNotBubble= {
 26         "blur":1,
 27         "focus":1,
 28         "change":1
 29         //"mouseenter":1,//onlyIE
 30         //"mouseleave":1
 31     };
 32     /**
 33      * @private
 34      */
 35     J.event.eventProxy= function(el, eventsObj){
 36         var events= {},k,v;
 37         for(k in eventsObj) {
 38             v= eventsObj[k];
 39             var arg= k.split(" ");
 40             var targets= arg[0],event= arg[1];
 41             events[event]= events[event]||[];
 42             events[event].push([targets,v]);
 43         }
 44         k=v=null;
 45         for(k in events) {
 46             v= events[k];
 47             if(eventsNotBubble[k]||(k.charAt(0)=="@")) {
 48                 for(var len=v.length-1;len>=0;len--) {
 49                     var targets= v[len][0].split(",");
 50                     for(var l=targets.length-1;l>=0;l--) {
 51                         var type= hash[targets[l].charAt(0)];
 52                         if(type=="id") {
 53                             $E.on($D.id(targets[l].substr(1)),k,v[len][1]);
 54                         }else if(type=="el") {
 55                             $E.on(el,k.substr(1),v[len][1]);
 56                         }
 57                     }
 58                 }
 59             }else {
 60                 $E.on(el,k,function(e) {
 61                     var dom= e.target;
 62                     for(var len=v.length-1;len>=0;len--) {
 63                         J.event.eventParser.parse(v[len][0],v[len][1],e);
 64                     }
 65                 });
 66             }
 67         }
 68     };
 69 });
 70