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