W3C home > Mailing lists > Public > www-dom@w3.org > July to September 2009

Re: addEventListener naming

From: Michael A. Puls II <shadow2531@gmail.com>
Date: Sun, 13 Sep 2009 00:13:32 -0400
To: www-dom@w3.org
Message-ID: <op.uz6got1t1ejg13@sandra-svwliu01>
Jonas Sicking <jonas@sicking.cc> wrote:
> 2. If the long name is a significant problem, then it can easily be
> worked around in JS by using prototypes.

What's the proper way to do that so that it feels close to like it was  
implemented natively?

Would the following be close?

window.listen = Node.prototype.listen = function(type, func, capt) {
     if (typeof capt !== "bool") capt = false;
     this.addEventListener(type, func, capt);
};
window.unlisten = Node.prototype.unlisten = function(type, func, capt) {
     if (typeof capt !== "bool") capt = false;
     this.removeEventListener(type, func, capt);
};
window.listenOnce = Node.prototype.listenOnce = function(type, func, capt)  
{
     function wrapper(e) {
         func.apply(this, [e]);
         this.unlisten(type, wrapper, capt);
     }
     this.listen(type, wrapper, capt);
};

If so, even though that's not much code (especially if you don't need the  
3rd), I don't know if I'd bother.

If browsers implement listen() though, I would prefer it over  
addEventListener, as long as I didn't have to do if (foo.listen) {} else  
if(foo.addEventListener) {} everywhere.

-- 
Michael
Received on Sunday, 13 September 2009 04:14:19 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 22 June 2012 06:14:03 GMT