1

クリックすると画像が読み込まれ、ページが更新されても画像がそこにとどまるはずの複数のボタンがあります。これを使用すると、他のボタンをクリックしても setItem 値が最も高いボタンが常に表示されます。これを修正するにはどうすればよいですか?

スクリプトの 1 つを次に示します。

<script type="text/javascript">
            var isImage1 = sessionStorage.getItem('2');

            function showImage1() {
            sessionStorage.setItem('isImage1', '2');
            $("#loadingImage1").show();
            $("#loadingImage").hide();
            $("#loadingImage2").hide();
            $("#loadingImage3").hide();
            $("#loadingImage4").hide();
            $("#loadingImage5").hide();
            $("#loadingImage6").hide();

            }
            if(isImage1 == 2) showImage1();

        </script>

ここに私のボタンの1つがあります:

 <input name="EPL/MECH DESIGN - TECHS" style="white-space:normal"  
   onclick="moveText(this.name);showImage1();form1.submit()" 
 style="width: 275px"  type="button" value="7SBD EPL/Mech. Design Techs" />

更新: この行を更新しました

 var isImage1 = sessionStorage.getItem('2');

   var isImage1 = sessionStorage.getItem('isIamge1');

しかし、他のボタンをクリックしても最大値の isImage が残るという私の問題はまだ存在するため、まだ助けが必要です。

4

2 に答える 2

1

コードを少しリファクタリングすると、次のようなことができます。

/// setup some vars including max number of images
var maxImages = 6, i = 1, v;

/// now loop through and get the items for each image
for(; i =< maxImages; i++) {
    v = sessionStorage.getItem('isImage' + i);

    /// if in storage, call show image with the number to show
    if (v !== null) showImage(i);
}

/// show image based on number
function showImage(num) {

    sessionStorage.setItem('isImage' + num, '1');
    $("#loadingImage" + num).show();
}

sessionStorageまた、文字列のみを扱うことに注意してください。したがって、特定の数値を確認するには、最初にそれを 1 に変換する必要がありますparseInt(value, 10);

ただし、この場合、1設定する は何でもかまいません。値を格納するだけなので、sessionStorageは返されませんnull

ボタンのコードでは、これを行うように変更できます。

<input name="EPL/MECH DESIGN - TECHS" style="white-space:normal"  
onclick="moveText(this.name);showImage(1);form1.submit()" 
style="width: 275px"  type="button" value="7SBD EPL/Mech. Design Techs" />
于 2013-07-25T22:02:36.350 に答える