aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Goodrich <glenn.goodrich@gmail.com>2011-05-26 11:28:17 -0400
committerScott González <scott.gonzalez@gmail.com>2011-05-26 11:28:17 -0400
commitc49dbe0f0120dec9922d5cb6459a93d33ef41579 (patch)
tree873e81c65bca887312112b631668aa1166aa20aa
parente89ae5f3bb3e8827960c4f0de5dd1ce1ac5010f5 (diff)
downloadjquery-ui-c49dbe0f0120dec9922d5cb6459a93d33ef41579.tar.gz
jquery-ui-c49dbe0f0120dec9922d5cb6459a93d33ef41579.zip
Button: modified the event bindings for focus and blur. Fixed #6711 - checkbox/radio button do not show focused state when using Keyboard Navigation
-rw-r--r--tests/unit/button/button_tickets.js8
-rw-r--r--ui/jquery.ui.button.js16
2 files changed, 17 insertions, 7 deletions
diff --git a/tests/unit/button/button_tickets.js b/tests/unit/button/button_tickets.js
index 79bbfeb5c..9a7ccae43 100644
--- a/tests/unit/button/button_tickets.js
+++ b/tests/unit/button/button_tickets.js
@@ -20,6 +20,14 @@ test( "#6262 - buttonset not applying ui-corner to invisible elements", function
ok( set.find( "label:eq(2)" ).is( ".ui-button.ui-corner-right" ) );
});
+test( "#6711 Checkbox/Radiobutton do not Show Focused State when using Keyboard Navigation", function() {
+ var check = $( "#check" ).button(),
+ label = $( "label[for='check']" );
+ ok( !label.is( ".ui-state-focus" ) );
+ check.focus();
+ ok( label.is( ".ui-state-focus" ) );
+});
+
test( "#7092 - button creation that requires a matching label does not find label in all cases", function() {
var group = $( "<span><label for='t7092a'/><input type='checkbox' id='t7092a'/></span>" );
group.find( "input:checkbox" ).button();
diff --git a/ui/jquery.ui.button.js b/ui/jquery.ui.button.js
index a95dddc6c..3f3b90e92 100644
--- a/ui/jquery.ui.button.js
+++ b/ui/jquery.ui.button.js
@@ -95,19 +95,21 @@ $.widget( "ui.button", {
}
$( this ).removeClass( hoverClass );
})
- .bind( "focus.button", function() {
- // no need to check disabled, focus won't be triggered anyway
- $( this ).addClass( focusClass );
- })
- .bind( "blur.button", function() {
- $( this ).removeClass( focusClass );
- })
.bind( "click.button", function( event ) {
if ( options.disabled ) {
event.stopImmediatePropagation();
}
});
+ this.element
+ .bind( "focus.button", function() {
+ // no need to check disabled, focus won't be triggered anyway
+ self.buttonElement.addClass( focusClass );
+ })
+ .bind( "blur.button", function() {
+ self.buttonElement.removeClass( focusClass );
+ });
+
if ( toggleButton ) {
this.element.bind( "change.button", function() {
if ( clickDragged ) {