diff options
author | Scott González <scott.gonzalez@gmail.com> | 2010-03-14 17:53:18 +0000 |
---|---|---|
committer | Scott González <scott.gonzalez@gmail.com> | 2010-03-14 17:53:18 +0000 |
commit | 385269e3eae74ad18fa35ea77229a5555baf1884 (patch) | |
tree | 80b57d9faf574257ba7bf52add4073a24b620fe1 /ui/jquery.ui.button.js | |
parent | c75abc5e9add71f29ea4604a323c4de916df46e3 (diff) | |
download | jquery-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.js | 14 |
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 ) ); |