I'm proposing a new method for the Events module for Moo2, The name is up 
for grabs, but I'll call it `fireOnce` for lack of a better name.
This method's behavior is analogous to the `domready` event, in that it 
allows a stack of events to be queued up, and then fired - all subsequent 
efforts to add events to that particular key, will be fired immediately - 
not queued.

Sometimes you only need an event should only fire once; as is the case with 
`domready`;  Queuing events on `domready` post ready is a useless effort 
because the dom is only ready once.  We handle all subsequent efforts to 
attach events to the `domready` event by firing it right away.  An example 
of needing this method would be if you're loading a template/js file 
asynchronously. You may want to fire event after the template is loaded, or 
parse the javascript prior to evaluating it, so you might create an event 
like `template.loaded` and queue up events for when the template is 
available to parse. If you have two asynchronous events, say you're loading 
two template files, and one depends on the other before you can inject it 
into the dom, it requires a series of checks before you can procede with 
injection.

Here's a quick fiddle demonstrating how such a method works (note this is 
not the Mootools Events class):
http://jsfiddle.net/jiggliemon/Yq7Qn/

Here's using the core Events class, firing an event on an interval:
http://jsfiddle.net/jiggliemon/Yq7Qn/2/

Here's my quick hack to the core Events class:
https://gist.github.com/1098976

- Chase

Reply via email to