ok, so if i understand this correctly, this method does not bring in a heavy overhead?
On Thu, Mar 26, 2009 at 10:51 PM, Danny <d.wac...@prodigy.net> wrote: > > the $.makeArray(document.styleSheets) is to get around a bug in IE > (http://dev.jquery.com/ticket/4366). > > This code does not parse the CSS; the styleSheets collection is the > already-parsed rules that the browser applies. See > http://www.hunlock.com/blogs/Totally_Pwn_CSS_with_Javascript for an > introduction. > > On Mar 26, 8:29 am, Alexandre Plennevaux <aplennev...@gmail.com> > wrote: >> arf how stupid of me, thanks for the head up, this works: >> >> function getStyle (selector){ >> var re = new RegExp('(^|,)\\s*'+selector.toLowerCase()+'\\s*(,|$)'); >> var style = ""; >> $.each ($.makeArray(document.styleSheets), function(){ >> $.each (this.cssRules || this.rules, function(){ >> if (re.test(this.selectorText)) style += this.style.cssText + ';'; >> }); >> }); >> return style; >> >> } >> >> var temp = getStyle('#myitem:hover'); >> alert("css= "+temp); >> >> live here:http://jsbin.com/itipo >> >> still, that's a heavy work around for something that i assumed would >> be stored in memory. If i understand correctly you parse through each >> css file, right? >> >> On Thu, Mar 26, 2009 at 2:19 PM, Gilles <gil...@netxtra.net> wrote: >> >> > Try changing to JQuery.each() instead (or $.each, but I believe it's >> > JQuery.each()) in this case >> >> > On Mar 26, 1:12 pm, Alexandre Plennevaux <aplennev...@gmail.com> >> > wrote: >> >> tried it but it returns an error, about the "each()" >> >> >> see & tweak :http://jsbin.com/avoxu >> >> >> On Thu, Mar 26, 2009 at 2:00 PM, Danny <d.wac...@prodigy.net> wrote: >> >> >> > What I've used to grab styles from the stylesheets (though never for >> >> > pseudo classes; please try it!) is: >> >> > function getStyle (selector){ >> >> > var re = new RegExp('(^|,)\\s*'+selector.toLowerCase()+'\\s*(,| >> >> > $)'); >> >> > var style = ""; >> >> > each ($.makeArray(document.styleSheets), function(){ >> >> > each (this.cssRules || this.rules, function(){ >> >> > if (re.test(this.selectorText)) style += >> >> > this.style.cssText + ';'; >> >> > }); >> >> > }); >> >> > return style; >> >> > } >> >> >> > and use getStyle('a:hover') >> >> >> > This is simplified; it doesn't handle @import and @media or escape >> >> > special characters, but it ought to work. >> >> >> > Danny >> >> >> > On Mar 26, 6:22 am, Alexandre Plennevaux <aplennev...@gmail.com> >> >> > wrote: >> >> >> i'm just trying to be as semantically correct as possible. >> >> >> >> say i want links to change their background color when the mouse >> >> >> passes over. >> >> >> I can do it in css easily >> >> >> >> a { >> >> >> background-color:red; >> >> >> >> } >> >> >> >> a:hover{ >> >> >> background-color:green; >> >> >> >> } >> >> >> >> now, for those who have javascript, i want the color change to be an >> >> >> animated color blend, from red to green. >> >> >> I can of course retrieve the target color (green in this example) by >> >> >> storing it via metadata, a custom attribute or the data attribute. >> >> >> However, strictly speaking, its correct place is the css file itself, >> >> >> where all styling should be. >> >> >> >> that's why i wanted to know if i can have access to the css properties >> >> >> set in the stylesheet for the :hover pseudo class. > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---