While this conversation is apt, I made a copy of the latest nightly
and changed

return elem.disabled === false && elem.type !== "hidden";

to

return elem.disabled === false;

with identical results.

It's clear :enabled and :disabled aren't the best method for doing
this. While the workaround solutions provided in this thread would
work in some cases, they don't address the root of the problem: There
seems to be no real way to get a list of stylesheets currently
available on the page and which are actually applied to the page. My
question remains, is this information available via the DOM across all
major browsers using some other method than checking if the <link
is .disabled?


On Sep 1, 12:26 pm, DBJDBJ <dbj...@gmail.com> wrote:
> Maybe this will help :
>
> http://www.nabble.com/Selector-:enabled-no-longer-finds-hidden-elemen...
>
> --DBJ
>
> On Sep 1, 3:00 am, max g <m...@tnug.com> wrote:
>
> > Hello all,
>
> > I've been trying to write some code to let users change stylesheets at
> > will and have run into a bit of confusion as to how each browser
> > reacts. There seems to be no uniform selector to get a list of
> > stylesheets that are currently applied or not.
>
> > I'm using a test page with two stylesheets, examples:
>
> > <link type="text/css" rel="stylesheet" href="default.css"
> > title="default" />
> > <link type="text/css" rel="alternate stylesheet" href="theme.css"
> > title="theme" />
>
> > I've tried multiple selectors and had somewhat random results from
> > each:
>
> > Using Firefox 3.5.2, IE 8.0.6001.18702 and Chrome 2.0.172.43. Results
> > seem to be uniform across jQuery 1.3.2 and the latest nightly.
>
> > Selector: link[rel*=stylesheet]
> > Result: Works correctly in all browsers.
>
> > Selector: link[rel*=stylesheet]:enabled and link[rel*=stylesheet]
> > [disabled=false]
> > Result:
> >  Firefox: Does not find any stylesheets.
> >  Chrome: Does not find any stylesheets.
> >  IE: Finds both stylesheets.
>
> > Selector: li...@rel*=stylesheet]:enabled and li...@rel*=stylesheet]
> > [disabled=false]
> > Result:
> >  Firefox: Finds only the default stylesheet, but throws a warning
> > about @rel.
> >  Chrome: Finds both stylesheets.
> >  IE: Finds both stylesheets.
>
> > Selector: li...@rel*=stylesheet]:disabled and li...@rel*=stylesheet]
> > [disabled=true]
> > Result:
> >  Firefox: Finds only the alternate stylesheet, but also throws a
> > warning about @rel.
> >  Chrome: Does not find any stylesheets.
> >  IE: Does not find any stylesheets.
>
> > I'm assuming Firefox is the only browser that actually reports to the
> > DOM the disabled attribute on stylesheets, but if so, I'm not sure why
> > in Firefox you're forced to use @rel to get that information,
> > especially when using using the selector 'li...@rel*=stylesheet]'
> > throws a jQuery exception.
>
> > That all being said, $('li...@rel*=style]:enabled').attr('disabled',
> > true); and $("li...@rel=*style][title='theme']").attr('disabled',
> > false); seem to work across all browsers to turn stylesheets off and
> > on, despite the warnings.
>
> > So am I going about this all wrong? Should I be using some other
> > method to figure out if stylesheets are applied? Or would this be
> > classified as a bug?
>
> > Thanks!
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"jQuery Development" group.
To post to this group, send email to jquery-dev@googlegroups.com
To unsubscribe from this group, send email to 
jquery-dev+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to