31 lines
4.0 KiB
JavaScript
31 lines
4.0 KiB
JavaScript
/*!
|
|
* jQuery twitter bootstrap wizard plugin
|
|
* Examples and documentation at: http://github.com/VinceG/twitter-bootstrap-wizard
|
|
* version 1.0
|
|
* Requires jQuery v1.3.2 or later
|
|
* Dual licensed under the MIT and GPL licenses:
|
|
* http://www.opensource.org/licenses/mit-license.php
|
|
* http://www.gnu.org/licenses/gpl.html
|
|
* Authors: Vadim Vincent Gabriel (http://vadimg.com), Jason Gill (www.gilluminate.com)
|
|
*/
|
|
(function(b){var a=function(e,d){var e=b(e);
|
|
var g=this;var c=b.extend({},b.fn.bootstrapWizard.defaults,d);var f=null;var h=null;this.fixNavigationButtons=function(){if(!f.length){h.find("a:first").tab("show");
|
|
f=h.find("li:first");}if(g.firstIndex()>=g.currentIndex()){b("li.previous",e).addClass("disabled");}else{b("li.previous",e).removeClass("disabled");}if(g.currentIndex()>=g.navigationLength()){b("li.next",e).addClass("disabled");
|
|
}else{b("li.next",e).removeClass("disabled");}if(c.onTabShow&&typeof c.onTabShow==="function"&&c.onTabShow(f,h,g.currentIndex())===false){return false;
|
|
}};this.next=function(i){if(e.hasClass("last")){return false;}if(c.onNext&&typeof c.onNext==="function"&&c.onNext(f,h,g.nextIndex())===false){return false;
|
|
}$index=g.nextIndex();if($index>g.navigationLength()){}else{h.find("li:eq("+$index+") a").tab("show");}};this.previous=function(i){if(e.hasClass("first")){return false;
|
|
}if(c.onPrevious&&typeof c.onPrevious==="function"&&c.onPrevious(f,h,g.previousIndex())===false){return false;}$index=g.previousIndex();if($index<0){}else{h.find("li:eq("+$index+") a").tab("show");
|
|
}};this.first=function(i){if(c.onFirst&&typeof c.onFirst==="function"&&c.onFirst(f,h,g.firstIndex())===false){return false;}if(e.hasClass("disabled")){return false;
|
|
}h.find("li:eq(0) a").tab("show");};this.last=function(i){if(c.onLast&&typeof c.onLast==="function"&&c.onLast(f,h,g.lastIndex())===false){return false;
|
|
}if(e.hasClass("disabled")){return false;}h.find("li:eq("+g.navigationLength()+") a").tab("show");};this.currentIndex=function(){return h.find("li").index(f);
|
|
};this.firstIndex=function(){return 0;};this.lastIndex=function(){return g.navigationLength();};this.getIndex=function(i){return h.find("li").index(i);
|
|
};this.nextIndex=function(){return h.find("li").index(f)+1;};this.previousIndex=function(){return h.find("li").index(f)-1;};this.navigationLength=function(){return h.find("li").length-1;
|
|
};this.activeTab=function(){return f;};this.nextTab=function(){return h.find("li:eq("+(g.currentIndex()+1)+")").length?h.find("li:eq("+(g.currentIndex()+1)+")"):null;
|
|
};this.previousTab=function(){if(g.currentIndex()<=0){return null;}return h.find("li:eq("+parseInt(g.currentIndex()-1)+")");};this.show=function(i){return e.find("li:eq("+i+") a").tab("show");
|
|
};h=e.find("ul:first",e);f=h.find("li.active",e);if(!h.hasClass(c.tabClass)){h.addClass(c.tabClass);}if(c.onInit&&typeof c.onInit==="function"){c.onInit(f,h,0);
|
|
}b(c.nextSelector,e).bind("click",g.next);b(c.previousSelector,e).bind("click",g.previous);b(c.lastSelector,e).bind("click",g.last);b(c.firstSelector,e).bind("click",g.first);
|
|
if(c.onShow&&typeof c.onShow==="function"){c.onShow(f,h,g.nextIndex());}g.fixNavigationButtons();b('a[data-toggle="tab"]',e).on("click",function(i){if(c.onTabClick&&typeof c.onTabClick==="function"&&c.onTabClick(f,h,g.currentIndex())===false){return false;
|
|
}});b('a[data-toggle="tab"]',e).on("show",function(i){$element=b(i.target).parent();if($element.hasClass("disabled")){return false;}f=$element;g.fixNavigationButtons();
|
|
});};b.fn.bootstrapWizard=function(d){if(typeof d=="string"){var c=Array.prototype.slice.call(arguments,1).toString();return this.data("bootstrapWizard")[d](c);
|
|
}return this.each(function(e){var f=b(this);if(f.data("bootstrapWizard")){return;}var g=new a(f,d);f.data("bootstrapWizard",g);});};b.fn.bootstrapWizard.defaults={tabClass:"nav nav-pills",nextSelector:".wizard li.next",previousSelector:".wizard li.previous",firstSelector:".wizard li.first",lastSelector:".wizard li.last",onShow:null,onInit:null,onNext:null,onPrevious:null,onLast:null,onFirst:null,onTabClick:null,onTabShow:null};
|
|
})(jQuery); |