あなたcheck
の関数は、onclickイベントのコールバックとして割り当てるために必要な関数を返さないと思います。
but.onclick = check;
たとえば、次の場合です。
var check = function() {
return function(){
/* some logic eg. dependent of arguments 'parent' function' */
} }
//works
but.onclick = check('somethingImportant');
addEventListener
大丈夫ですが、これらのイベントに複数のコールバックを割り当てたい場合は問題があります:) /について知っているとよいでしょうattachEvent
but.addEventListener( 'click', check,true );
but.addEventListener( 'click', check2,true );
その後、必要に応じて機能を使用removeEventLister
またはdetachEvent
切り離します。
ただし、jqueryで遊んでみてください:)
var check = function(){/* do something */};
$('#addButton').append(
$('<input type="button" value="New Button"/>')
).click( check );
また
$('#addButton').append(
$('<input/>' ).attr( 'type', 'button' ).val( 'New Button' ) )
.click( function(){ /* do something */ } )
);
それから
$('#addButton').unbind( 'click' ) // unbind( 'click',check )
そしてそれを行うことへのはるかに多くの可能性:)