- From: Michael A. Puls II <shadow2531@gmail.com>
- Date: Sun, 13 Sep 2009 00:13:32 -0400
- To: www-dom@w3.org
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 UTC