W3C home > Mailing lists > Public > public-webapps@w3.org > July to September 2012

Re: Proposal for "Cascading Attribute Sheets" - like CSS, but for attributes!

From: Tab Atkins Jr. <jackalmage@gmail.com>
Date: Tue, 21 Aug 2012 15:49:31 -0700
Message-ID: <CAAWBYDDEo-kXOE9OiUEiBWNu+rjLcGqtNAR05KDqb=0EgXZ6DQ@mail.gmail.com>
To: Brian Kardell <bkardell@gmail.com>
Cc: public-webapps <public-webapps@w3.org>, Ojan Vafai <ojan@chromium.org>
On Tue, Aug 21, 2012 at 3:44 PM, Brian Kardell <bkardell@gmail.com> wrote:
> On Aug 21, 2012 6:18 PM, "Tab Atkins Jr." <jackalmage@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
Received on Tuesday, 21 August 2012 22:50:19 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 18:49:54 GMT