Upgrade to Pro — share decks privately, control downloads, hide ads and more …

YUI3 EventTarget

ningzbruc
January 24, 2013

YUI3 EventTarget

This presentation shows how YUI3 Custom Event System works!

ningzbruc

January 24, 2013
Tweet

More Decks by ningzbruc

Other Decks in Technology

Transcript

  1. //  Step  1   var  MyEventTarget  =  new  Y.EventTarget(); //

     Step  2 var  MyCustomEvent  =  ET.publish('myevent'); //  Step  3 var  MySubscriber  =  function(MyEventFacade)  {        //  Step  6        console.log(MyEventFacade.foo);  //  1 }; //  Step  4 var  MyEventHandle  =  MyEventTarget.on('myevent',  MySubscriber); //  Step  5 ET.fire('myevent',  {        foo:  1,        bar:  2 }); //  Step  7 MyEventHandle.detach();
  2. function  MyWidget()  {        this.name  =  'mywidget'; }

    Y.augment(MyWidget,  Y.EventTarget); //  MyWidget.publish(...) //  MyWidget.on(...) //  MyWidget.fire(...)
  3. function  Mod(name)  {        this.name  =  name;  

         this.publish('render',  {                fireOnce:  true        }); } Y.augment(Mod,  Y.EventTarget); Mod.prototype  =  {        render:  function()  {                //  more  code                this.fire('render',  {                        args:  YArray(arguments,  0,  true)                });                return  this;        } }; Mod.create  =  function(name,  methods)  {        return  Y.mix(new  Mod(name),  methods); }
  4. var  Mod_A  =  Mod.create('a',  {        getModBData:  function()

     {                Mod_B.on('render',  function(e)  {...})        } }); var  Mod_B  =  Mod.create('b',  methods); Mod_A.render().getModBData(); //  more  code //  lazyload Mod_B.render();