Ticket #5295: jquery.ui.button-02.patch

File jquery.ui.button-02.patch, 1.5 KB (added by AzaToth, 10 years ago)

remade patch to remove states on "disabled" directly

  • jquery.ui.button.js

     
    3030        _create: function() {
    3131                this._determineButtonType();
    3232                this.hasTitle = !!this.buttonElement.attr( "title" );
     33                this.isHovering = false; // To be used if "enable" is called while mouse is hovering over a disabled dutton
    3334
    3435                var self = this,
    3536                        options = this.options,
     
    4546                        .addClass( baseClasses )
    4647                        .attr( "role", "button" )
    4748                        .bind( "mouseenter.button", function() {
     49                                self.isHovering = true;
    4850                                if ( options.disabled ) {
    4951                                        return;
    5052                                }
     
    5456                                }
    5557                        })
    5658                        .bind( "mouseleave.button", function() {
     59                                self.isHovering = false;
    5760                                if ( options.disabled ) {
    5861                                        return;
    5962                                }
     
    194197        },
    195198
    196199        _setOption: function( key, value ) {
     200                switch( key ) {
     201                case 'disabled':
     202                        if( value ) {
     203                                // There is a posibillity that the button is made disabled during hovering/clicking etc...
     204                                // So to be on the safe side, we'll remove all state classes when calling disabled.
     205                                this.element.removeClass( "ui-state-active ui-state-hover ui-state-focus" )
     206                        } else {
     207                                // We could be hovering (statically) over the disabled button and call "enable" on the button,
     208                                // lets then mark it as in a hovering state.
     209                                if( this.isHovering ) {
     210                                        this.element.addClass( "ui-state-hover" );
     211                                }
     212                        }
     213                        break;
     214                }
    197215                $.Widget.prototype._setOption.apply( this, arguments );
    198216                this._resetButton();
    199217        },