0
我正在使用燃料UX嚮導控制頁面。在利用屬於嚮導控件一部分的下一個按鈕時,我可以利用「更改」功能,並且可以使用頁面上的單獨控件觸發事件。 'change'事件如此重要的原因在於,當用戶導航到該步驟時,所有內容都通過ajax加載。燃料UX嚮導更改事件
我遇到的問題涉及單擊向導控件中的步驟本身時,「更改」事件未被觸發,因此內容未加載。我的問題是,如何強制wizard.js類中的'stepclicked'事件來調用'change'事件,以便加載內容,最好不更改任何wizard.js文件。
$("#MyWizard").wizard().change(function(e, data) {
switch (data.step) {
case 1:
if (data.direction == "next") {
GetExclusionLoad();
}
break;
case 2:
if (data.direction == "previous") {
GetRevenueLoad();
} else if (data.direction == "next") {
GetWithholdingLoad();
}
break;
case 3:
if (data.direction == "next") {
GetProcessBeginLoad();
} else if (data.direction == "previous") {
GetExclusionLoad();
}
break;
case 4:
if (data.direction == "next") {
} else if (data.direction == "previous") {
GetWithholdingLoad();
}
break;
}
});
解決方案:感謝@邁克爾米科夫斯基我能夠弄清楚一些小的變化。
var onChangeWizard, onClickWizard, onDirectionWizard, $myWizard,
stateMap = {
wizard_step_idx: 1,
wizard_direction_str: 'next'
};
onChangeWizard = function(event, data) {
var stepIdx = data.step || 1;
var directionStr = data.direction || '';
if (directionStr === 'next' && stepIdx < 4) {
stepIdx++;
} else if (directionStr === 'previous' && stepIdx > 0) {
stepIdx--;
}
// save state
stateMap.wizard_step_idx = stepIdx;
stateMap.wizard_direction_str = directionStr;
switch (stepIdx) {
case 1:
GetRevenueLoad();
break;
case 2:
GetExclusionLoad();
break;
case 3:
GetWithholdingLoad();
break;
case 4:
GetProcessBeginLoad();
break;
}
};
$myWizard = $('#MyWizard');
$myWizard.on('change', function(event, data) {
onChangeWizard(event, {
step: data.step,
direction: data.direction
});
});
$myWizard.on('stepclick', function(event, index) {
onChangeWizard(event, {
step: index.step,
direction: 'click'
});
});
謝謝你。它像一個魅力。有一個'stepclick'事件會在點擊這些步驟時觸發,我可以使用'index'值來設置移動到的步驟。感謝開關簡化,讓我的生活變得更加輕鬆。 – sevargdcg