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;
    }
});

タイトル 1 は領域 pos 1-2 から、タイトル 2 は領域 pos 3-7 から、タイトル 4 は領域 pos 4-6 から、というようにロードする必要があります。必要なのは、タイトルの読み込みをバック機能に追加する方法の例だけです。混乱が生じた場合、

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

あなたはそのようなことを試すことができます:

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 に答える
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 に答える