From 24e587929f62428e1959b10aace6dc4fd65ab397 Mon Sep 17 00:00:00 2001 From: Lihan Li Date: Sun, 29 Sep 2013 12:06:32 -0400 Subject: [PATCH] Fix #14394: Changing style !important in webkit. Close gh-1385. --- src/css.js | 3 +++ test/unit/css.js | 6 ++++++ 2 files changed, 9 insertions(+) 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( "
" ).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 = [{ -- 2.39.5