4

私は次のjsコードを持っています:

function createConBox() {
   var charDiv = document.getElementById("characterList");  // reference to "characterList" div
   header = document.createElement("p");  // creates the <p> tag
   charDiv.appendChild(header);  // adds the <p> tag to the parent node
   title = document.createTextNode("Show Only Lines By:");  // creates the text string
   header.appendChild(title); // adds the text string to the parent node

   // create select box and add elements
   selectBox = document.createElement("select");   
   selectBox.setAttribute("id", "cList");
   charDiv.appendChild(selectBox);

   charNames = uniqueElemText("h3");   // array of character names
   newOption = document.createElement("option");
   selectBox.appendChild(newOption);
   newOptionTitle = document.createTextNode("Show All Lines");
   newOption.appendChild(newOptionTitle);
   for (i = 0; i < charNames.length; i++) {
      newOption = document.createElement("option");
      selectBox.appendChild(newOption);
      newOptionTitle = document.createTextNode(charNames[i]);
      newOption.appendChild(newOptionTitle);
   }

}

function showLines() {
   alert("The Box has been changed");
}

ボックス内のオプションが変更されるたびに、'showLines()' を呼び出すようにします。ただし、イベントを実装しようとするたびに、ページが読み込まれたときにのみトリガーされ、その後はトリガーされません。どんな助けでも大歓迎です。

4

3 に答える 3

4

selectBox.onchange = showLines;あなたの問題を解決する必要があります。

一部のブラウザでは、選択ボックスをぼかした後にのみonchangeが起動されます。onclickこれを克服するには、代わりに使用できますonchange

于 2013-03-17T20:20:44.683 に答える
3

私の推測では、あなたはこれをやっていると思います:

selectBox.onchange = showLines();

()その場合は、 :を削除してください。

selectBox.onchange = showLines;
于 2013-03-17T20:19:59.023 に答える