我正在尝试将更改事件分配给元素。我有

 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>


我希望仅在用户更改dropdonw菜单时显示警报。但是,似乎在元素创建后立即调用了警报。
有小费吗?非常感谢!

最佳答案

您正在将函数changeFunction的返回值分配给SelectMenu.onchange,而不是函数本身。尝试...

SelectMenu.onchange = changeFuntion;


代替。您拥有的方式,即:

SelectMenu.onchange = changeFuntion();


表示:调用函数changeFunction,并将返回值分配给SelectMenu.onchange属性。

10-05 20:48