aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabrício Matté <ult_combo@hotmail.com>2012-11-26 20:14:58 -0500
committerMike Sherov <mike.sherov@gmail.com>2012-11-26 20:15:53 -0500
commitcaacf8f5041ad434b8e0dd1069936eb91e4c3394 (patch)
tree7f3ff90608c8e481faf54917c3b100a8c24d15cf
parent0cc81978b20b0bbe964ebf360a9833a04c3e39a2 (diff)
downloadjquery-ui-caacf8f5041ad434b8e0dd1069936eb91e4c3394.tar.gz
jquery-ui-caacf8f5041ad434b8e0dd1069936eb91e4c3394.zip
Button: Let change handler handle display and aria update. Fixed #5518 - Button: Incorrect state after double click in Firefox
-rw-r--r--tests/unit/button/button.html1
-rw-r--r--tests/unit/button/button_events.js11
-rw-r--r--ui/jquery.ui.button.js2
3 files changed, 12 insertions, 2 deletions
diff --git a/tests/unit/button/button.html b/tests/unit/button/button.html
index 388209991..ebdc76470 100644
--- a/tests/unit/button/button.html
+++ b/tests/unit/button/button.html
@@ -68,6 +68,7 @@
</form>
<input type="checkbox" id="check"><label for="check">Toggle</label>
+<input type="checkbox" id="check2"><label for="check2">Checkbox</label>
<div><input id="submit" type="submit" value="Label"></div>
diff --git a/tests/unit/button/button_events.js b/tests/unit/button/button_events.js
index 7b79c41ea..b808b59b7 100644
--- a/tests/unit/button/button_events.js
+++ b/tests/unit/button/button_events.js
@@ -23,4 +23,15 @@ test( "when button loses focus, ensure active state is removed (#8559)", functio
}).focus().simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } ).simulate( "keypress", { keyCode: $.ui.keyCode.ENTER } );
});
+test( "ensure checked and aria after single click on checkbox label button", function() {
+ expect( 3 );
+
+ $("#check2").button().change( function() {
+ var lbl = $( this ).button("widget");
+ ok( this.checked, "checked ok" );
+ ok( lbl.attr("aria-pressed") === "true", "aria ok" );
+ ok( lbl.hasClass("ui-state-active"), "ui-state-active ok" );
+ }).button("widget").simulate("click");
+});
+
})(jQuery);
diff --git a/ui/jquery.ui.button.js b/ui/jquery.ui.button.js
index d6eed67dc..1108bd50c 100644
--- a/ui/jquery.ui.button.js
+++ b/ui/jquery.ui.button.js
@@ -147,8 +147,6 @@ $.widget( "ui.button", {
if ( options.disabled || clickDragged ) {
return false;
}
- $( this ).toggleClass( "ui-state-active" );
- that.buttonElement.attr( "aria-pressed", that.element[0].checked );
});
} else if ( this.type === "radio" ) {
this.buttonElement.bind( "click" + this.eventNamespace, function() {