- From: Glenn Maynard <glenn@zewt.org>
- Date: Mon, 11 Feb 2013 18:31:19 -0600
- To: www-dom@w3.org
- Message-ID: <CABirCh_svF0=dUNXMJ-=moEWJCNB-7m=ek-v4WFbNp+wKiO6_w@mail.gmail.com>
On Sat, Jan 5, 2013 at 1:30 PM, Glenn Maynard <glenn@zewt.org> wrote: > element.addEventListener("click", handler, { > // Only fire the handler if event.target matches this selector at > dispatch time. > filter: ".click", > > // If this is a non-capturing listener, fire this event during the > bubble phase even if the event's bubbles > // flag is false. > alwaysBubble: true, > > // If true, this is a capturing listener. > capture: true, > }); > > This allows overriding the annoying bubbles flag, but without it being a > subtle, implicit difference between APIs. It does mean event delegation > takes a little more typing, but it's not bad: > > container.addEventListener("focus", handler, { filter: "input", > alwaysBubble: true }); > > The "handler = container.addEventListener(); handler.stop();" pattern > could probably be supported here, too, unless for some reason making > addEventListener return a value actually has web compat problems. > I think this proposal needs more consideration. It's a simple, consistent overload of an existing API, instead of a new API. I've been told that it's "confusing", but not how or why. It seems simple and obvious to me, so I don't know how to address this. It seems much simpler than having two distinct event listener APIs. It doesn't give a nice two-letter function name, but that's not a reason to have two APIs (at most it simply means making an alias). -- Glenn Maynard
Received on Tuesday, 12 February 2013 00:31:46 UTC