2016-05-26 16 views
-1

このコードに問題があります。ボタンをクリックすると「hello」関数を実行してアラートを開く必要がありますが、機能しません。onclickを使用したJavascript関数呼び出し

function hello(){ 
 
    alert("hi"); 
 
    } 
 

 
document.getElementById("one").onclick = hello();
<button id="one">Click me </button>

私は単にこれ

button onclick="hello()";
のように行うことができますことを知っているが、私はそれがJavaScriptのバージョンで動作する必要があります。基本的に私の質問です:ボタンをクリックしたときにボタンをクリックすると "hello"という関数を開く方法はありますか?

+4

この関数を呼び出さないでください。単に参照を割り当ててください。 '= hello;' – trincot

+1

onclickを割り当てないで、.addEventListener( 'click'、hello);を使用します。代わりに。私は理由を説明するための答えを作成しませんが、簡単に見つけ出すことができます。 – AxelH

答えて

2

これは一般的な問題ですが、あなたとリンクするための標準的な答えが見つかりませんでした。

あなたの問題このライン:

document.getElementById("one").onclick = hello() 

onclickにその関数の戻り値を代入し、その後機能helloを実行します。

は、あなたは本当にこれが欲しい:

のonclickプロパティに関数のリファレンスを割り当て
document.getElementById("one").onclick = hello; 

しかし、onclickの使用は時代遅れであり、多くの理由でaddEventListenerの使用が推奨されています。

+0

[このような](http://stackoverflow.com/a/3007402/542251):) – Liam

1

onclickプロパティに関数を割り当てる必要があります。

すぐにを呼び出し、戻り値(undefined)を割り当てます。

()を関数名の後に置かないでください。

document.getElementById("one").onclick = hello; 
関連する問題