aboutsummaryrefslogtreecommitdiffstats
path: root/ui/jquery.ui.button.js
diff options
context:
space:
mode:
authorScott González <scott.gonzalez@gmail.com>2010-03-14 17:53:18 +0000
committerScott González <scott.gonzalez@gmail.com>2010-03-14 17:53:18 +0000
commit385269e3eae74ad18fa35ea77229a5555baf1884 (patch)
tree80b57d9faf574257ba7bf52add4073a24b620fe1 /ui/jquery.ui.button.js
parentc75abc5e9add71f29ea4604a323c4de916df46e3 (diff)
downloadjquery-ui-385269e3eae74ad18fa35ea77229a5555baf1884.tar.gz
jquery-ui-385269e3eae74ad18fa35ea77229a5555baf1884.zip
Button: Don't react to keydown when disabled.
Partial fix for #5328 - button disabled only visually when disabled option set, still functional.
Diffstat (limited to 'ui/jquery.ui.button.js')
-rw-r--r--ui/jquery.ui.button.js14
1 files changed, 8 insertions, 6 deletions
diff --git a/ui/jquery.ui.button.js b/ui/jquery.ui.button.js
index 8bf198173..5e5a640ad 100644
--- a/ui/jquery.ui.button.js
+++ b/ui/jquery.ui.button.js
@@ -101,7 +101,7 @@ $.widget( "ui.button", {
});
}
- if ( this.type === "checkbox") {
+ if ( this.type === "checkbox" ) {
this.buttonElement.bind( "click.button", function() {
if ( options.disabled ) {
return;
@@ -109,7 +109,7 @@ $.widget( "ui.button", {
$( this ).toggleClass( "ui-state-active" );
self.buttonElement.attr( "aria-pressed", self.element[0].checked );
});
- } else if ( this.type === "radio") {
+ } else if ( this.type === "radio" ) {
this.buttonElement.bind( "click.button", function() {
if ( options.disabled ) {
return;
@@ -145,7 +145,10 @@ $.widget( "ui.button", {
$( this ).removeClass( "ui-state-active" );
})
.bind( "keydown.button", function(event) {
- if ( event.keyCode === $.ui.keyCode.SPACE || event.keyCode === $.ui.keyCode.ENTER ) {
+ if ( options.disabled ) {
+ return;
+ }
+ if ( event.keyCode == $.ui.keyCode.SPACE || event.keyCode == $.ui.keyCode.ENTER ) {
$( this ).addClass( "ui-state-active" );
}
})
@@ -166,8 +169,7 @@ $.widget( "ui.button", {
// TODO: pull out $.Widget's handling for the disabled option into
// $.Widget.prototype._setOptionDisabled so it's easy to proxy and can
// be overridden by individual plugins
- $.Widget.prototype._setOption.call( this, "disabled", options.disabled );
- this._resetButton();
+ this._setOption( "disabled", options.disabled );
},
_determineButtonType: function() {
@@ -326,4 +328,4 @@ $.widget( "ui.buttonset", {
}
});
-}( jQuery ));
+}( jQuery ) );