diff --git a/tests/unit/button/button_core.js b/tests/unit/button/button_core.js index 12016627f..1a40d5ee0 100644 --- a/tests/unit/button/button_core.js +++ b/tests/unit/button/button_core.js @@ -10,7 +10,7 @@ module("button: core"); test("checkbox", function() { var input = $("#check"); label = $("label[for=check]"); - ok( input.is(":visble") ); + ok( input.is(":visible") ); ok( label.is(":not(.ui-button)") ); input.button(); ok( input.is(":hidden") ); @@ -20,7 +20,7 @@ test("checkbox", function() { test("radios", function() { var inputs = $("#radio0 input"); labels = $("#radio0 label"); - ok( inputs.is(":visble") ); + ok( inputs.is(":visible") ); ok( labels.is(":not(.ui-button)") ); inputs.button(); ok( inputs.is(":hidden") ); diff --git a/ui/jquery.ui.button.js b/ui/jquery.ui.button.js index 1b6442975..7f59e26ba 100644 --- a/ui/jquery.ui.button.js +++ b/ui/jquery.ui.button.js @@ -11,14 +11,14 @@ * jquery.ui.core.js * jquery.ui.widget.js */ -(function($) { +(function( $ ) { var lastActive, baseClasses = "ui-button ui-widget ui-state-default ui-corner-all", otherClasses = "ui-state-hover ui-state-active " + "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon ui-button-text-only"; -$.widget("ui.button", { +$.widget( "ui.button", { options: { text: true, label: null, @@ -29,113 +29,121 @@ $.widget("ui.button", { }, _create: function() { this._determineButtonType(); - this.hasTitle = !!this.buttonElement.attr('title'); + this.hasTitle = !!this.buttonElement.attr( "title" ); var self = this, options = this.options, - toggleButton = this.type == 'checkbox' || this.type == 'radio', - hoverClass = 'ui-state-hover' + (!toggleButton ? ' ui-state-active' : ''); + toggleButton = this.type === "checkbox" || this.type === "radio", + hoverClass = "ui-state-hover" + ( !toggleButton ? " ui-state-active" : "" ); - if (options.label === null) { + if ( options.label === null ) { options.label = this.buttonElement.html(); } this.buttonElement - .addClass(baseClasses) - .attr('role', 'button') - .bind("mouseenter.button", function() { - if (options.disabled) { return; } - $(this).addClass("ui-state-hover"); - if (this == lastActive) { - $(this).addClass("ui-state-active"); + .addClass( baseClasses ) + .attr( "role", "button" ) + .bind( "mouseenter.button", function() { + if ( options.disabled ) { + return; + } + $( this ).addClass( "ui-state-hover" ); + if ( this === lastActive ) { + $( this ).addClass( "ui-state-active" ); } }) - .bind("mouseleave.button", function() { - if (options.disabled) { return; } - $(this).removeClass(hoverClass); + .bind( "mouseleave.button", function() { + if ( options.disabled ) { + return; + } + $( this ).removeClass( hoverClass ); }); - switch (this.type) { - case 'checkbox': - this.buttonElement.bind('click.button', function() { - if (options.disabled) { return; } - $(this).toggleClass("ui-state-active"); - self.element - .attr("checked", !self.element[0].checked) - .click(); - self.buttonElement.attr('aria-pressed', self.element[0].checked); - }); - break; - case 'radio': - this.buttonElement.bind('click.button', function() { - if (options.disabled) { return; } - $(this).addClass("ui-state-active"); - self.element - .attr("checked", true) - .click(); - self.buttonElement.attr('aria-pressed', true); + if ( this.type === "checkbox") { + this.buttonElement.bind( "click.button", function() { + if ( options.disabled ) { + return; + } + $( this ).toggleClass( "ui-state-active" ); + self.element + .attr( "checked", !self.element[0].checked ) + .click(); + self.buttonElement.attr( "aria-pressed", self.element[0].checked ); + }); + } else if ( this.type === "radio") { + this.buttonElement.bind( "click.button", function() { + if ( options.disabled ) { + return; + } + $( this ).addClass( "ui-state-active" ); + self.element + .attr( "checked", true ) + .click(); + self.buttonElement.attr( "aria-pressed", true ); - var radio = self.element[0], - name = radio.name, - form = radio.form, - radios; - if (name) { - if (form) { - radios = $(form).find('[name=' + name + ']'); - } else { - radios = $('[name=' + name + ']', radio.ownerDocument) - .filter(function() { - return !this.form; - }); - } - radios - .not(radio) - .map(function() { - return $(this).button('widget')[0]; - }) - .removeClass('ui-state-active') - .attr('aria-pressed', false); + var radio = self.element[ 0 ], + name = radio.name, + form = radio.form, + radios; + if ( name ) { + if ( form ) { + radios = $( form ).find( "[name=" + name + "]" ); + } else { + radios = $( "[name=" + name + "]", radio.ownerDocument ) + .filter(function() { + return !this.form; + }); } - }); - break; - default: - this.buttonElement - .bind("mousedown.button", function() { - if (options.disabled) { return; } - $(this).addClass("ui-state-active"); - lastActive = this; - $(document).one('mouseup', function() { - lastActive = null; - }); - }) - .bind("mouseup.button", function() { - if (options.disabled) { return; } - $(this).removeClass("ui-state-active"); + radios + .not( radio ) + .map(function() { + return $( this ).button( "widget" )[ 0 ]; + }) + .removeClass( "ui-state-active" ) + .attr( "aria-pressed", false ); + } + }); + } else { + this.buttonElement + .bind( "mousedown.button", function() { + if ( options.disabled ) { + return; + } + $( this ).addClass( "ui-state-active" ); + lastActive = this; + $( document ).one( "mouseup", function() { + lastActive = null; }); - break; + }) + .bind( "mouseup.button", function() { + if ( options.disabled ) { + return; + } + $( this ).removeClass( "ui-state-active" ); + }); } this._resetButton(); }, _determineButtonType: function() { - this.type = this.element.is(':checkbox') - ? 'checkbox' - : this.element.is(':radio') - ? 'radio' - : this.element.is('input') - ? 'input' - : 'button'; + this.type = this.element.is( ":checkbox" ) + ? "checkbox" + : this.element.is( ":radio" ) + ? "radio" + : this.element.is( "input" ) + ? "input" + : "button"; - if (this.type == 'checkbox' || this.type == 'radio') { - this.buttonElement = $("[for=" + this.element.attr("id") + "]"); + if ( this.type === "checkbox" || this.type === "radio" ) { + this.buttonElement = $( "[for=" + this.element.attr("id") + "]" ); this.element.hide(); - - var checked = this.element.is(':checked'); - if (checked) { - this.buttonElement.addClass('ui-state-active'); + + var checked = this.element.is( ":checked" ); + if ( checked ) { + this.buttonElement.addClass( "ui-state-active" ); } - this.buttonElement.attr('aria-pressed', checked) + this.buttonElement.attr( "aria-pressed", checked ) } else { this.buttonElement = this.element; } @@ -147,101 +155,101 @@ $.widget("ui.button", { destroy: function() { this.buttonElement - .removeClass(baseClasses + " " + otherClasses) - .removeAttr('role') - .removeAttr('aria-pressed') - .html(this.buttonElement.find(".ui-button-text").html()); + .removeClass( baseClasses + " " + otherClasses ) + .removeAttr( "role" ) + .removeAttr( "aria-pressed" ) + .html( this.buttonElement.find(".ui-button-text").html() ); - if (!this.hasTitle) { - this.buttonElement.removeAttr('title'); + if ( !this.hasTitle ) { + this.buttonElement.removeAttr( "title" ); } - if (this.type == 'checkbox' || this.type == 'radio') { + if ( this.type === "checkbox" || this.type === "radio" ) { this.element.show(); } - $.Widget.prototype.destroy.call(this); + $.Widget.prototype.destroy.call( this ); }, - _setOption: function(key, value) { - $.Widget.prototype._setOption.apply(this, arguments); + _setOption: function( key, value ) { + $.Widget.prototype._setOption.apply( this, arguments ); this._resetButton(); }, _resetButton: function() { - if (this.type == 'input') { - if (this.options.label) { - this.element.val(this.options.label); + if ( this.type === "input" ) { + if ( this.options.label ) { + this.element.val( this.options.label ); } return; } var buttonElement = this.buttonElement, - buttonText = $("") - .addClass("ui-button-text") - .html(this.options.label) - .appendTo(buttonElement.empty()) + buttonText = $( "" ) + .addClass( "ui-button-text" ) + .html( this.options.label ) + .appendTo( buttonElement.empty() ) .text(); var icons = this.options.icons, multipleIcons = icons.primary && icons.secondary; - if (icons.primary || icons.secondary) { - buttonElement.addClass("ui-button-text-icon" + - (multipleIcons ? "s" : "")); - if (icons.primary) { - buttonElement.prepend(""); + if ( icons.primary || icons.secondary ) { + buttonElement.addClass( "ui-button-text-icon" + + ( multipleIcons ? "s" : "" ) ); + if ( icons.primary ) { + buttonElement.prepend( "" ); } - if (icons.secondary) { - buttonElement.append(""); + if ( icons.secondary ) { + buttonElement.append( "" ); } - if (!this.options.text) { + if ( !this.options.text ) { buttonElement - .addClass(multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only") - .removeClass("ui-button-text-icons ui-button-text-icon"); - if (!this.hasTitle) { - buttonElement.attr("title", buttonText); + .addClass( multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only" ) + .removeClass( "ui-button-text-icons ui-button-text-icon" ); + if ( !this.hasTitle ) { + buttonElement.attr( "title", buttonText ); } } } else { - buttonElement.addClass("ui-button-text-only"); + buttonElement.addClass( "ui-button-text-only" ); } } }); -$.widget("ui.buttonset", { +$.widget( "ui.buttonset", { _create: function() { - this.element.addClass("ui-button-set"); - this.buttons = this.element.find(':button, :submit, :reset, :checkbox, :radio, a, .ui-button') + this.element.addClass( "ui-button-set" ); + this.buttons = this.element.find( ":button, :submit, :reset, :checkbox, :radio, a, .ui-button" ) .button() .map(function() { - return $(this).button('widget')[0]; + return $( this ).button( "widget" )[ 0 ]; }) - .removeClass('ui-corner-all') - .filter(':first') - .addClass('ui-corner-left') + .removeClass( "ui-corner-all" ) + .filter( ":first" ) + .addClass( "ui-corner-left" ) .end() - .filter(':last') - .addClass('ui-corner-right') + .filter( ":last" ) + .addClass( "ui-corner-right" ) .end() .end(); }, - _setOption: function(key, value) { - if (key == 'disabled') { - this.buttons.button('option', key, value); + _setOption: function( key, value ) { + if ( key === "disabled" ) { + this.buttons.button( "option", key, value ); } - $.Widget.prototype._setOption.apply(this, arguments); + $.Widget.prototype._setOption.apply( this, arguments ); }, destroy: function() { - this.element.removeClass('ui-button-set'); + this.element.removeClass( "ui-button-set" ); this.buttons - .button("destroy") - .removeClass("ui-corner-left ui-corner-right"); + .button( "destroy" ) + .removeClass( "ui-corner-left ui-corner-right" ); - $.Widget.prototype.destroy.call(this); + $.Widget.prototype.destroy.call( this ); } }); -})(jQuery); +})( jQuery );