1

要素に変更イベントを割り当てようとしています。私は持っている

 var testDiv=getElementById('testDiv');

 var SelectMenu=document.createElement('select');
     SelectMenu.id='SelectMenu';
     SelectMenu.onchange=changeFuntion();

     testDiv.appendChild(SelectMenu);

function changeFuntion(){
 //it calls right after I load the page....
 alert('call');

}

html

  <div id='testDiv'></div>

ユーザーがドロップダウンメニューを変更したときにのみアラートを表示したい。ただし、要素が作成された直後にアラートが呼び出されるようです。任意のヒント?どうもありがとう!

4

2 に答える 2

2
SelectMenu.onchange=changeFuntion();  <-- This calls the function
                                 ^^--- Remove the braces

察するに

SelectMenu.onchange=changeFuntion  ;  <-- This assigns the function pointer

中括弧があるため、関数はすぐに呼び出されます...

于 2012-12-15T01:54:45.683 に答える
1

関数自体ではなく、関数のchangeFunction戻り値を に代入しています。SelectMenu.onchange試す...

SelectMenu.onchange = changeFuntion;

その代わり。あなたがそれを持っていた方法、すなわち:

SelectMenu.onchange = changeFuntion();

意味: 関数changeFunctionを呼び出し、戻り値をSelectMenu.onchangeプロパティに割り当てます。

于 2012-12-15T01:56:17.383 に答える