In some cases, (like IE7's filter property), setting the style to an empty
value doesn't act the same as not having that style at all.

JK

-----Original Message-----
From: [email protected] [mailto:[email protected]] On
Behalf Of Ricardo Tomasi
Sent: Monday, December 15, 2008 7:06 AM
To: jQuery Development
Subject: [jquery-dev] Re: Feature request: Delete a CSS style value


The effect of your function is exactly the same as setting the style
to an empty string, isn't it? Or am I missing something?

I meant deleting from the stylesheet in document.styleSheets

On Dec 14, 11:30 pm, "Jeffrey Kretz" <[email protected]> wrote:
> This is the function I use for that exact thing:
>
> $.fn.removeStyle = function(name) {
>    // Convert the style name to a lower-case string array.
>    if (!name)
>       return this;
>    else if (name.toLowerCase)
>       name = [ name.toLowerCase() ];
>    else if (name.length)
>    {
>       for (var i=0;i<name.length;i++)
>          name[i] = (''+name[i]).toLowerCase();
>    }
>    else
>       return this;
>
>    // Remove the styles from each of the elements.
>    return this.each(function(i) {
>
>       var el = $(this);
>       var styles = (el.attr('style')||'').split(';');
>
>       for (var i=styles.length-1;i>=0;i--)
>       {
>          var style = $.trim(styles[i].split(':')[0]).toLowerCase();
>          for (var j=0;j<name.length;j++)
>          {
>             // If we found a matching style (or it matches a meta-style).
>             if (style==name[j] || style.indexOf(name[j]+'-')==0)
>             {
>                // Remove it.
>                if (i==styles.length-1)
>                   styles.pop();
>                else if (i==0)
>                   styles.shift();
>                else
>                   styles.splice(i,i);
>
>                break;
>             }
>          }
>       }
>
>       // Assign the changed style.
>       var newstyles = styles.join(';');
>       if (newstyles)
>          el.attr('style',newstyles);
>       else
>          el.removeAttr('style');
>
>    });
>
> }
> -----Original Message-----
> From: [email protected] [mailto:[email protected]] On
>
> Behalf Of Ricardo Tomasi
> Sent: Sunday, December 14, 2008 2:46 PM
> To: jQuery Development
> Subject: [jquery-dev] Re: Feature request: Delete a CSS style value
>
> When I started reading I thought you were talking about deleting the
> CSS in the stylesheet, thus modifying it, not overwriting it with more
> specific rules (style att). That would be interesting.
>
> On Dec 12, 2:42 pm, jez9999 <[email protected]> wrote:
> > Hello,
>
> > I'd like to see the following in the next version of jQuery: a
> > function named something like .delCss(name), which would actually
> > delete/unset the style property of the given name on all matched
> > elements.
>
> > See, you can already do this by setting the desired style properties/
> > values in a particular class and then using .removeClass(classname),
> > so it seems to me to be logical that you should be able to do it with
> > CSS style properties too.
>
> > I know common things to do are to set properties to the empty string,
> > or 'default', or something instead, but logically to me it feels nicer
> > to be able to 'unset' the property, even if what jQuery is doing
> > behind the scenes is just setting the property to the empty string.
> > Perhaps in future browsers will offer a genuine way to unset
> > properties in Javascript using an actual Javascrupt 'unset' function,
> > which could then be implemented in jQuery's .delCss() function.
>
> > An example of how this would work would be, say, I set a particular
> > background-color on an element (either using style="" in the markup or
> > via Javascript, which I understand is identical in terms of
> > specificity).  I could then later call $('#myElem').delCss('background-
> > color') on it, which in this property's case would cause the browser
> > to revert it to the default when the property is unspecified -
> > 'transparent'
>
(seehttp://www.eskimo.com/~bloo/indexdot/css/properties/colorbg/bgcolor.htm)
> .
> > This feels nicer to me than $('#myElem').css('background-color', '').
> > Could we see this in future?  :-)
>
> > Best regards,
> > Jeremy Morton (Jez)



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"jQuery Development" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to