Commit e45b4160 authored by Brandon Aaron's avatar Brandon Aaron

make sure toggleClass does not delete classNames when forcefully removing...

make sure toggleClass does not delete classNames when forcefully removing classes and they are already removed
parent 5e6e5383
......@@ -141,13 +141,12 @@ jQuery.each({
jQuery.className[ state ? "add" : "remove" ]( this, className );
}
} else if ( type === "undefined" || type === "boolean" ) {
// toggle whole className
if ( this.className || classNames === false ) {
if ( this.className ) {
// store className if set
jQuery.data( this, "__className__", this.className );
this.className = "";
} else {
this.className = jQuery.data( this, "__className__" ) || "";
}
// toggle whole className
this.className = this.className || classNames === false ? "" : jQuery.data( this, "__className__" ) || "";
}
}
}, function(name, fn){
......
......@@ -282,7 +282,7 @@ test("removeClass(String) - simple", function() {
});
test("toggleClass(String|boolean|undefined[, boolean])", function() {
expect(16);
expect(17);
var e = jQuery("#firstp");
ok( !e.is(".test"), "Assert class not present" );
......@@ -310,17 +310,23 @@ test("toggleClass(String|boolean|undefined[, boolean])", function() {
// toggleClass storage
e.toggleClass(true);
ok( e.get(0).className === "", "Assert class is empty (data was empty)" );
e.addClass("testD");
ok( e.is(".testD"), "Assert class present" );
e.addClass("testD testE");
ok( e.is(".testD.testE"), "Assert class present" );
e.toggleClass();
ok( !e.is(".testD"), "Assert class not present" );
ok( e.data('__className__') === 'testD', "Assert data was stored" );
ok( !e.is(".testD.testE"), "Assert class not present" );
ok( e.data('__className__') === 'testD testE', "Assert data was stored" );
e.toggleClass();
ok( e.is(".testD"), "Assert class present (restored from data)" );
ok( e.is(".testD.testE"), "Assert class present (restored from data)" );
e.toggleClass(false);
ok( !e.is(".testD"), "Assert class not present" );
ok( !e.is(".testD.testE"), "Assert class not present" );
e.toggleClass(true);
ok( e.is(".testD"), "Assert class present (restored from data)" );
ok( e.is(".testD.testE"), "Assert class present (restored from data)" );
e.toggleClass();
e.toggleClass(false);
e.toggleClass();
ok( e.is(".testD.testE"), "Assert class present (restored from data)" );
// Cleanup
e.removeClass("testD");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment