2 lines
4.5 KiB
JavaScript
2 lines
4.5 KiB
JavaScript
!function(d){"use strict";var i=function(t,e){this.$element=d(t),this.options=d.extend({},this.defaults(),e),this.render()};function p(t){if(0==d(t).length)return!1;var e=t.clone();e.css({visibility:"hidden",width:"",height:"",maxWidth:"",maxHeight:""}),d("body").append(e);var o=e.outerWidth(),s=e.outerHeight();return e.remove(),{width:o,height:s}}i.VERSION="2.2.3",i.DEFAULTS={on:"On",off:"Off",onstyle:"primary",offstyle:"default",size:"normal",style:"",width:null,height:null},i.prototype.defaults=function(){return{on:this.$element.attr("data-on")||i.DEFAULTS.on,off:this.$element.attr("data-off")||i.DEFAULTS.off,onstyle:this.$element.attr("data-onstyle")||i.DEFAULTS.onstyle,offstyle:this.$element.attr("data-offstyle")||i.DEFAULTS.offstyle,size:this.$element.attr("data-size")||i.DEFAULTS.size,style:this.$element.attr("data-style")||i.DEFAULTS.style,width:this.$element.attr("data-width")||i.DEFAULTS.width,height:this.$element.attr("data-height")||i.DEFAULTS.height}},i.prototype.render=function(){this._onstyle="btn-"+this.options.onstyle,this._offstyle="btn-"+this.options.offstyle;var t="large"===this.options.size?"btn-lg":"small"===this.options.size?"btn-sm":"mini"===this.options.size?"btn-xs":"",e=d('<label class="btn">').html(this.options.on).addClass(this._onstyle+" "+t),o=d('<label class="btn">').html(this.options.off).addClass(this._offstyle+" "+t+" active"),s=d('<span class="toggle-handle btn btn-default">').addClass(t),i=d('<div class="toggle-group">').append(e,o,s),n=d('<div class="toggle btn" data-toggle="toggle">').addClass(this.$element.prop("checked")?this._onstyle:this._offstyle+" off").addClass(this.$element.prop("readonly")?"disabled":"").addClass(this.$element.prop("disabled")?"inactive":"").addClass(t).addClass(this.options.style).attr("title",this.$element.prop("title"));this.$element.wrap(n),d.extend(this,{$toggle:this.$element.parent(),$toggleOn:e,$toggleOff:o,$toggleGroup:i}),this.$toggle.append(i);var l=this.options.width||Math.max(e.outerWidth(),o.outerWidth())+s.outerWidth()/2,h=this.options.height||Math.max(e.outerHeight(),o.outerHeight());if(0==l||0==h){var a=p(e),g=p(o),r=p(s);l=this.options.width||Math.max(a.width,g.width)+r.width/2,h=this.options.height||Math.max(a.height,g.height)+r.height/2}e.addClass("toggle-on"),o.addClass("toggle-off"),this.$toggle.css({width:l,height:h}),this.options.height&&(e.css("line-height",e.height()+"px"),o.css("line-height",o.height()+"px")),this.update(!0),this.trigger(!0)},i.prototype.toggle=function(){this.$element.prop("checked")?this.off():this.on()},i.prototype.on=function(t){if(this.$element.prop("disabled")||this.$element.prop("readonly"))return!1;this.$toggle.removeClass(this._offstyle+" off").addClass(this._onstyle),this.$element.prop("checked",!0),t||this.trigger()},i.prototype.off=function(t){if(this.$element.prop("disabled")||this.$element.prop("readonly"))return!1;this.$toggle.removeClass(this._onstyle).addClass(this._offstyle+" off"),this.$element.prop("checked",!1),t||this.trigger()},i.prototype.enable=function(){this.$toggle.removeAttr("disabled"),this.$element.prop("disabled",!1)},i.prototype.disable=function(){this.$toggle.attr("disabled","disabled"),this.$element.prop("disabled",!0)},i.prototype.update=function(t){this.$element.prop("disabled")?this.disable():this.enable(),this.$element.prop("checked")?this.on(t):this.off(t)},i.prototype.trigger=function(t){this.$element.off("change.bs.toggle"),t||this.$element.change(),this.$element.on("change.bs.toggle",d.proxy(function(){this.update()},this))},i.prototype.destroy=function(){this.$element.off("change.bs.toggle"),this.$toggleGroup.remove(),this.$element.removeData("bs.toggle"),this.$element.unwrap()};var t=d.fn.bootstrapToggle;d.fn.bootstrapToggle=function(s){return this.each(function(){var t=d(this),e=t.data("bs.toggle"),o="object"==typeof s&&s;e||t.data("bs.toggle",e=new i(this,o)),"string"==typeof s&&e[s]&&e[s]()})},d.fn.bootstrapToggle.Constructor=i,d.fn.toggle.noConflict=function(){return d.fn.bootstrapToggle=t,this},d(function(){d("input[type=checkbox][data-toggle^=toggle]:not('.tiny-toggle')").bootstrapToggle()}),d(document).on("touchstart.bs.toggle click.bs.toggle","div[data-toggle^=toggle]",function(t){d(this).find("input[type=checkbox]").bootstrapToggle("toggle"),t.preventDefault(),t.stopPropagation()}).on("touchstart.bs.toggle click.bs.toggle","label[for]",function(t){var e=d("#"+d(t.currentTarget).attr("for"));e[0]&&e.data("bs.toggle")&&(e.bootstrapToggle("toggle"),t.preventDefault())})}(jQuery);
|
|
//# sourceMappingURL=bootstrap-toggle.min.js.map
|