/* * jQuery UI Progressbar @VERSION * * Copyright 2010, AUTHORS.txt * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * http://docs.jquery.com/UI/Progressbar * * Depends: * jquery.ui.core.js * jquery.ui.widget.js */ (function( $ ) { $.widget( "ui.progressbar", { options: { value: 0 }, _create: function() { this.element .addClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" ) .attr({ role: "progressbar", "aria-valuemin": this._valueMin(), "aria-valuemax": this._valueMax(), "aria-valuenow": this._value() }); this.valueDiv = $( "
" ) .appendTo( this.element ); this._refreshValue(); }, destroy: function() { this.element .removeClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" ) .removeAttr( "role" ) .removeAttr( "aria-valuemin" ) .removeAttr( "aria-valuemax" ) .removeAttr( "aria-valuenow" ); this.valueDiv.remove(); $.Widget.prototype.destroy.apply( this, arguments ); }, value: function( newValue ) { if ( newValue === undefined ) { return this._value(); } this._setOption( "value", newValue ); return this; }, _setOption: function( key, value ) { switch ( key ) { case "value": this.options.value = value; this._refreshValue(); this._trigger( "change" ); break; } $.Widget.prototype._setOption.apply( this, arguments ); }, _value: function() { var val = this.options.value; // normalize invalid value if ( typeof val !== "number" ) { val = 0; } if ( val < this._valueMin() ) { val = this._valueMin(); } if ( val > this._valueMax() ) { val = this._valueMax(); } return val; }, _valueMin: function() { return 0; }, _valueMax: function() { return 100; }, _refreshValue: function() { var value = this.value(); this.valueDiv [ value === this._valueMax() ? "addClass" : "removeClass"]( "ui-corner-right" ) .width( value + "%" ); this.element.attr( "aria-valuenow", value ); } }); $.extend( $.ui.progressbar, { version: "@VERSION" }); })( jQuery );