スポンサーリンク

JavaScriptの動かないコード (中級編) イベントハンドラに同じ関数を2回以上追加したい


以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分)


やりたい事:

  • ボタン押下時に, 2 と表示する。
  • そのために,0に1足す操作を2回行なう。
<input type="button" value="「2」と表示" id="my_button">

<!-- ここに表示されます -->
<div id="my_div"></div>

<script language="JavaScript">

// 初期化
var a = 0;

// a に1足して表示
function f(){
	a++;
	my_div.innerHTML = a;
}

// イベント追加用の関数
function addEvent( element, eventName, func ){  
	if ( element.addEventListener )
	{
		// Firefox
		element.addEventListener( eventName, func, false );
	}
	else if ( element.attachEvent )
	{
		// IE
		element.attachEvent( "on" + eventName, func );  
	}
}

// イベントを2個追加
addEvent( my_button, "click", f );
addEvent( my_button, "click", f );

</script>
続きを読む