Friday, September 28, 2018

javascript - Change CSS rule in class using JQuery



I have a class in CSS



.Foo
{
width:20px;
}


Using Jquery I would like to do something similar to this on an event:



$(".Foo").css("width", "40px");


This doesn't work. Is this the wrong approach? Should I use addClass() and removeClass()?



EDIT: I figured out my problem. This command does in fact work. In my particular application I hadn't created the elements using the class before I used the command, so when they were created nothing was changed.



Basically this command doesn't change the CSS style rule, just the elements using the class.


Answer



jQuery.css will find all existing elements on the page that have the Foo class, and then set their inline style width to 40px.



In other words, this doesn't create or change a css rule -- if you dynamically add an element with the Foo class, it would still have a width of 20px, because its inline style hasn't been set to override the default CSS rule.



Instead, you should use addClass and removeClass and control the styles in your static CSS.


No comments:

Post a Comment

plot explanation - Why did Peaches' mom hang on the tree? - Movies & TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...