aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLihan Li <frankieteardrop@gmail.com>2013-09-29 12:06:32 -0400
committerRichard Gibson <richard.gibson@gmail.com>2013-10-15 16:34:54 -0400
commit24e587929f62428e1959b10aace6dc4fd65ab397 (patch)
tree7906036c46feaf186596347fdbf575579ec2e6af
parent6095be1260c5c0e7dfe88380501188d4c50975eb (diff)
downloadjquery-24e587929f62428e1959b10aace6dc4fd65ab397.tar.gz
jquery-24e587929f62428e1959b10aace6dc4fd65ab397.zip
Fix #14394: Changing style !important in webkit. Close gh-1385.
-rw-r--r--src/css.js3
-rw-r--r--test/unit/css.js6
2 files changed, 9 insertions, 0 deletions
diff --git a/src/css.js b/src/css.js
index 79127ec0e..30342a230 100644
--- a/src/css.js
+++ b/src/css.js
@@ -286,6 +286,9 @@ jQuery.extend({
// If a hook was provided, use that value, otherwise just set the specified value
if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) {
+ // Support: Chrome, Safari
+ // Setting style to blank string required to delete "style: x !important;"
+ style[ name ] = "";
style[ name ] = value;
}
diff --git a/test/unit/css.js b/test/unit/css.js
index 2c9fae0e7..4c1a9a241 100644
--- a/test/unit/css.js
+++ b/test/unit/css.js
@@ -925,6 +925,12 @@ test( ":visible/:hidden selectors", function() {
t( "Is Hidden", "#form input:hidden", ["hidden1","hidden2"] );
});
+test( "Override !important when changing styles (#14394)", function() {
+ expect( 1 );
+ var el = jQuery( "<div style='display: block !important;'></div>" ).css( "display", "none" );
+ equal( el.css( "display" ), "none", "New style replaced !important" );
+});
+
asyncTest( "Clearing a Cloned Element's Style Shouldn't Clear the Original Element's Style (#8908)", 24, function() {
var baseUrl = document.location.href.replace( /([^\/]*)$/, "" ),
styles = [{