On Tue, Aug 21, 2012 at 3:44 PM, Brian Kardell <bkard...@gmail.com> wrote: > On Aug 21, 2012 6:18 PM, "Tab Atkins Jr." <jackalm...@gmail.com> wrote: >> So, in my current proposal, you can just set an onfoo attribute: >> >> ul.special > li { >> onclick: "alert('You clicked me!'); >> evt.target.classlist.add('clicked');"; >> } >> >> Here's a suggestion for a similar API that would invoke >> addEventListener instead of setAttribute: >> >> ul.special > li { >> onclick: listen("alert('You clicked me!'); >> evt.target.classlist.add('clicked');"); >> } > > This feels a lot like netscape's old actionsheets proposal. Doesn't it > create the same footgun I mentioned above though? Would you be blocked off > from accessing dom in those handlers? Or are the read only (you may remember > you, borris and I discussed how that might work last year) In other words, > what is preventing you from writing... > > .foo .bar{ > onclick: listen(create a .bar and attach it as a child of evt.target); > }
Nothing prevents you from writing that. That's not problematic at all, though. When you click on a .bar, it creates a sibling .bar and gives it the same onclick. I think you've confused yourself into thinking this is an infinite loop - it's not. Since you can't create a mutation observer with an attribute, I don't think you can infinite-loop yourself at all. Even if you could, it's no more troublesome than the same possibility in pure JS. ~TJ