0

表示/非表示を切り替えるための次の JS スクリプトがあります。それが機能する要素が多く、フォーマットが不適切であり、jQueryで作成するのは面倒なので、この形式にしておく必要があります。

タイトルが示すように、「表示」イベントは機能していますが、「非表示」イベントは機能していません。そして、私は完全なJS初心者なので、あなたが私を助けてくれると思っていました. コードは次のとおりです。

function toggle(obj) {
  for (var  i = 0; i< 50; i++) {
    var name = 'q' + i;
    var inchide_obj=document.getElementById(obj);
    if (inchide_obj && inchide_obj.style && inchide_obj.style.display == "block") {
      inchide_obj.style.display = "none";
    }
  }
  var deschide_obj=document.getElementById(obj);
  if (deschide_obj && deschide_obj.style) {
    deschide_obj.style.display = "block";
    deschide_obj.focus();
  }
}

html は、それぞれ独自のクラス、q1、q2 などを持ついくつかのテキスト ブロックを意味します。ご協力ありがとうございます :)

4

1 に答える 1

2

現在のコードは、最初に要素を 50 回非表示にしようとし、最後に無条件に表示します。私はあなたがこれを探していると信じています:

function toggle(id) {
    var obj = document.getElementById(id);
    if (obj && obj.style) {
        if(obj.style.display != "block") {
            obj.style.display = "block";
        } else {
            obj.style.display = "none";
        }
    }
}
于 2013-01-15T13:39:28.960 に答える