Resolved Issue 96.

The wizard comoponent now fires a stepClick event that can be canceled.
This commit is contained in:
Dustin McCormick
2013-02-17 11:19:33 -05:00
parent e3834ac1da
commit 0d2dd32bf6
9 changed files with 52 additions and 5 deletions

5
dist/all.js vendored
View File

@@ -3955,6 +3955,11 @@ define('fuelux/wizard',['require','jquery'],function (require) {
var li = $(e.currentTarget);
var index = $('.steps li').index(li);
var evt = $.Event('stepClick');
this.$element.trigger(evt, {step: index + 1});
if (evt.isDefaultPrevented()) return;
this.currentStep = (index + 1);
this.setState();
},

4
dist/all.min.js vendored

File diff suppressed because one or more lines are too long

BIN
dist/fuelux.zip vendored

Binary file not shown.

5
dist/loader.js vendored
View File

@@ -4296,6 +4296,11 @@ define('fuelux/wizard',['require','jquery'],function (require) {
var li = $(e.currentTarget);
var index = $('.steps li').index(li);
var evt = $.Event('stepClick');
this.$element.trigger(evt, {step: index + 1});
if (evt.isDefaultPrevented()) return;
this.currentStep = (index + 1);
this.setState();
},

4
dist/loader.min.js vendored

File diff suppressed because one or more lines are too long

5
dist/wizard.js vendored
View File

@@ -86,6 +86,11 @@ define(['require','jquery'],function (require) {
var li = $(e.currentTarget);
var index = $('.steps li').index(li);
var evt = $.Event('stepClick');
this.$element.trigger(evt, {step: index + 1});
if (evt.isDefaultPrevented()) return;
this.currentStep = (index + 1);
this.setState();
},

View File

@@ -258,6 +258,12 @@
var item = $('#MyWizard').wizard('selectedItem');
console.log(item.step);
});
$('#MyWizard').on('stepClick', function(e, data) {
console.log('step' + data.step + ' clicked');
if(data.step===1) {
return e.preventDefault();
}
});
});
</script>

View File

@@ -86,6 +86,11 @@ define(function (require) {
var li = $(e.currentTarget);
var index = $('.steps li').index(li);
var evt = $.Event('stepClick');
this.$element.trigger(evt, {step: index + 1});
if (evt.isDefaultPrevented()) return;
this.currentStep = (index + 1);
this.setState();
},

View File

@@ -122,6 +122,27 @@ require(['jquery', 'fuelux/wizard'], function ($) {
equal(index, 1, 'step not changed');
});
test("should suppress stepClick event", function () {
var eventFired = false;
var $wizard = $(html).wizard().on('stepClick', function (evt, data) {
eventFired = true;
return evt.preventDefault(); // prevent action
});
// move to second step
$wizard.wizard('next');
// click first step
$wizard.find('.steps li:first').click();
var index = $wizard.wizard('selectedItem').step;
equal(eventFired, true, 'stepClick event fired');
equal(index, 2, 'step not changed');
});
test("should fire finished event", function () {
var eventFired = false;
@@ -170,4 +191,4 @@ require(['jquery', 'fuelux/wizard'], function ($) {
});
*/
});
});