纽威
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

134 lines
4.8 KiB

(function (b, c) {
var a = function (f, e) {
var d;
this.$element = b(f);
this.options = b.extend({}, b.fn.wizard.defaults, e);
this.currentStep = 1;
this.numSteps = this.$element.find("li").length;
/*Customized to Enable Out Of Wizard Buttons*/
this.$prevBtn = $('#'+this.$element[0].id+'-actions').find("a.btn-prev");
this.$nextBtn = $('#' + this.$element[0].id + '-actions').find("a.btn-next");
/*End Customized to Enable Out Of Wizard Buttons*/
d = this.$nextBtn.children().detach();
this.nextText = b.trim(this.$nextBtn.text());
this.$nextBtn.append(d);
this.$prevBtn.on("click", b.proxy(this.previous, this));
this.$nextBtn.on("click", b.proxy(this.next, this));
this.$element.on("click", "li.complete", b.proxy(this.stepclicked, this));
this.$stepContainer = this.$element.data("target") || "body";
this.$stepContainer = b(this.$stepContainer)
};
a.prototype = {
constructor: a,
setState: function () {
var n = (this.currentStep > 1);
var o = (this.currentStep === 1);
var d = (this.currentStep === this.numSteps);
this.$prevBtn.attr("disabled", (o === true || n === false));
var h = this.$nextBtn.data();
if (h && h.last) {
this.lastText = h.last;
if (typeof this.lastText !== "undefined") {
var l = (d !== true) ? this.nextText : this.lastText;
var f = this.$nextBtn.children().detach();
this.$nextBtn.text(l).append(f)
}
}
var j = this.$element.find("li");
j.removeClass("active").removeClass("complete");
var m = "li:lt(" + (this.currentStep - 1) + ")";
var g = this.$element.find(m);
g.addClass("complete");
var e = "li:eq(" + (this.currentStep - 1) + ")";
var k = this.$element.find(e);
k.addClass("active");
var i = k.data().target;
this.$stepContainer.find(".step-pane").removeClass("active");
b(i).addClass("active");
this.$element.trigger("changed")
},
stepclicked: function (h) {
var d = b(h.currentTarget);
var g = this.$element.find("li").index(d);
var f = b.Event("change");
this.$element.trigger(f, {
step: g + 1,
direction: "stepclicked",
currentStep: g + 1
});
if (f.isDefaultPrevented()) {
return
}
this.currentStep = (g + 1);
this.setState()
},
previous: function () {
var d = (this.currentStep > 1);
if (d) {
var f = b.Event("change");
this.$element.trigger(f, {
step: this.currentStep,
direction: "previous",
currentStep:this.currentStep-1
});
if (f.isDefaultPrevented()) {
return
}
this.currentStep -= 1;
this.setState()
}
},
next: function () {
var g = (this.currentStep + 1 <= this.numSteps);
var d = (this.currentStep === this.numSteps);
if (g) {
var f = b.Event("change");
this.$element.trigger(f, {
step: this.currentStep,
direction: "next",
currentStep: this.currentStep + 1
});
if (f.isDefaultPrevented()) {
return
}
this.currentStep += 1;
this.setState()
} else {
if (d) {
this.$element.trigger("finished")
}
}
},
selectedItem: function (d) {
return {
step: this.currentStep
}
}
};
b.fn.wizard = function (e, g) {
var f;
var d = this.each(function () {
var j = b(this);
var i = j.data("wizard");
var h = typeof e === "object" && e;
if (!i) {
j.data("wizard", (i = new a(this, h)))
}
if (typeof e === "string") {
f = i[e](g)
}
});
return (f === c) ? d : f
};
b.fn.wizard.defaults = {};
b.fn.wizard.Constructor = a;
b(function () {
b("body").on("mousedown.wizard.data-api", ".wizard", function () {
var d = b(this);
if (d.data("wizard")) {
return
}
d.wizard(d.data())
})
})
})(window.jQuery);