Ticket #4386: 4386.patch

File 4386.patch, 1.6 KB (added by Cloudream, 13 years ago)
  • ui.tabs.js

     
    1 /*
     1/*
    22 * jQuery UI Tabs @VERSION
    33 *
    44 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
     
    301301
    302302                // attach tab event handler, unbind to avoid duplicates from former tabifying...
    303303                this.anchors.bind(o.event + '.tabs', function() {
     304
     305                        if ( o.disabled === true ) {
     306                                return false;
     307                        }
     308
     309
    304310                        var el = this, $li = $(this).closest('li'), $hide = self.panels.filter(':not(.ui-tabs-hide)'),
    305311                                        $show = $(self._sanitizeSelector(this.hash));
    306312
     
    502508        },
    503509
    504510        enable: function(index) {
    505                 var o = this.options;
    506                 if ($.inArray(index, o.disabled) == -1) {
     511                var self = this, o = this.options;
     512                if ( index === undefined ) {
     513                        $.widget.prototype.enable.call(this);
     514                        if ( $.isArray(self._disabled) ) {
     515                                o.disabled = $.map(self._disabled,function(e,i){ return e; });
     516                                $.each(self._disabled, function(i,v){
     517                                        self.disable(v);
     518                                });
     519                        }
     520                        return ;
     521                } else if ($.inArray(index, o.disabled) == -1) {
    507522                        return;
    508523                }
    509524
     
    516531
    517532        disable: function(index) {
    518533                var self = this, o = this.options;
    519                 if (index != o.selected) { // cannot disable already selected tab
     534
     535                if ( index === undefined ) {
     536                        self._disabled = $.map(o.disabled,function(e,i){ return e; });
     537                        $.widget.prototype.disable.call(this);
     538                        return ;
     539                } else if (index != o.selected) { // cannot disable already selected tab
    520540                        this.lis.eq(index).addClass('ui-state-disabled');
    521541
    522542                        o.disabled.push(index);