atravelblog/js/tinytools.toggleswitch.min.js
2017-02-23 01:04:20 +01:00

1 line
No EOL
1.9 KiB
JavaScript

(function(n){function f(t){return n.extend({onLabel:"ON",offLabel:"OFF",width:"100px",height:"20px",onToggle:!1},t)}function r(n){return n.closest(".ToggleSwitch").data("settings")}function e(i,r){var h,s,e;n(i).is(":checkbox")&&(h=f({}),h=n.extend(h,u),r=n.extend(h,r),s='<div class="TinyTools ToggleSwitch">',s+='<div class="NubWrapper'+(n(i).is(":checked")?" Checked":"")+(n(i).is(":disabled")?" Disabled":"")+'">',s+='<div class="OffSide"><span>'+r.offLabel+"<\/span><\/div>",s+='<div class="OnSide"><span>'+r.onLabel+"<\/span><\/div>",s+='<div class="Nub"><\/div>',s+="<\/div><\/div>",e=n(s),n(i).css("display","none"),e.width()<=0&&e.css("width",r.width),e.height()<=0&&e.css("height",r.height),n(i).before(e),e.append(n(i)),e.data("settings",r),n(i).change(function(){t(n(this).closest(".ToggleSwitch"),n(this).is(":checked"),!1);o(n(this).closest(".ToggleSwitch"),n(this).is(":disabled"),!1)}),e.click(function(){n(this).children('input[type="checkbox"]').is(":disabled")||t(n(this),n(this).children('input[type="checkbox"]').is(":checked")?!1:!0)}))}function t(t,i,u){i?n(t).children(".NubWrapper").addClass("Checked"):n(t).children(".NubWrapper").removeClass("Checked");u!=!1&&n(t).children("input[type=checkbox]").prop("checked",i);s(r(t).onToggle,i,t)}function o(t,i,r){i?n(t).children(".NubWrapper").addClass("Disabled"):n(t).children(".NubWrapper").removeClass("Disabled");r!=!1&&n(t).children("input[type=checkbox]").prop("disabled",i)}function s(t,i,r){n.isFunction(t)&&t.call(undefined,i,r)}var i="toggleSwitch",u;n.toggleSwitch||(publicMethod=n.fn[i]=n[i]=function(n){var t=n;return this.each(function(n,i){e(i,t)})},n.propHooks.checked={set:function(t,i){t.checked=i;n(t).trigger("change")}},n.propHooks.disabled={set:function(t,i){t.disabled=i;n(t).trigger("change")}},publicMethod.getSettings=function(n){return r(n)},n.fn.toggleCheckedState=function(i){t(n(this).closest(".ToggleSwitch"),i)},publicMethod.toggle=function(i,r){t(n(r),i)})})(jQuery,document,window);