0

我今天有一个逻辑问题。我有一个基于 .load 的表单,它工作得很好。我有点坚持的是根据加载的表单区域的位置加载标题。我的“下一步”按钮工作正常,因为我对我加载的每个区域都有验证。例如

$('#next').click(function()
{
    if(question_pos==0)
    {
        question_pos+=1;
        $("#title_area").load("bl_forms.jsp #area_title1");
        showContent(question_pos,"right");
        return true;
    }
});

现在我需要的是后退按钮来根据位置加载正确的标题。这是我的后退按钮,

$('#back').click(function()
{
    if(question_pos>=2 && question_pos<=25)
    {
        question_pos-=1;
        showContent(question_pos,"left");
        return true;
    }
});

我需要从区域 pos 1-2 加载标题 1,从区域 pos 3-7 加载标题 2,从区域 pos 4-6 加载标题 4,依此类推。我需要的只是一个如何添加标题加载到后台功能的示例。万一出现混淆,

if(question_pos>=2 && question_pos<=25)
{

是否只是为了防止后退按钮在 pos 2 之前和 pos 25 之后更改 pos。

/*New edit*/

添加回调呢?就像是

$('#back').click(function(){
        if(question_pos>=2 && question_pos<=2){
        question_pos-=1;
        showContent(question_pos,"left");
                   ('#back').callback(function(){
   if(question_pos<=1 && question_pos>=2){
   $("#title_area").load("bl_forms.jsp #area_title1");
 }else if (question_pos<=3 && question_pos>=7){
   $("#title_area").load("bl_forms.jsp #area_title2");
 }else if (question_pos<=8 && question_pos>=10){
   $("#title_area").load("bl_forms.jsp #area_title4");
 }else if (question_pos<=11 && question_pos>=12){
   $("#title_area").load("bl_forms.jsp #area_title4");
 }else if (question_pos==13 || question_pos<=16){
   $("#title_area").load("bl_forms.jsp #area_title4");
 }else if (question_pos==17 || question_pos<=19){
   $("#title_area").load("bl_forms.jsp #area_title4");
 }else if (question_pos==20 || question_pos<=21){
   $("#title_area").load("bl_forms.jsp #area_title4");
 }else if (question_pos==22 || question_pos<=25){
   $("#title_area").load("bl_forms.jsp #area_title4");
 }

            }
});

也许是允许一堆额外的 if 语句的东西,或者是允许一个

4

2 回答 2

0
 if(question_pos==1 || question_pos==2){
   $("#title_area").load("bl_forms.jsp #area_title1");
 }else if (question_pos==3 || question_pos==7){
   $("#title_area").load("bl_forms.jsp #area_title2");
 }else if (question_pos==4 || question_pos==6){
   $("#title_area").load("bl_forms.jsp #area_title4");
 }
于 2013-03-30T00:42:03.867 回答
0

你可以尝试这样的事情:

var areas = [
    { start: 1, end: 2, page: '#area_title1' },
    { start: 3, end: 7, page: '#area_title2' },
    { start: 4, end: 6, page: '#area_title4' }
    // and so on...
];

for ( var i = 0, l = areas.length; i < l; i++ ) {
    var area = areas[i];
    if ( question_post >= area.start || question_post <= area.end ) {
        $('#title_area').load( 'bl_forms.jsp ' + area.page );
        break;
    }
}

这样,您只需更新您的页面数组,而循环永远不会改变。

于 2013-03-30T00:58:01.633 回答