2
<p id="specialp">some content</p>
<script>
document.getElementById('specialp').onclick=alert('clicked');
</script>

私はJavascriptを使い始めたばかりで、ページが読み込まれたときにアラートが実行される理由がわかりませんが、その段落をクリックしたときはわかりません。

ハンドラーは、次のようにインラインに配置すると、期待どおりに機能します。

<p id="specialp" onclick="alert('clicked')" >some content</p>
4

1 に答える 1

5

これは、onclick割り当てを実際の関数としてラップしなかったため、結果をalert('clicked')onclickイベントハンドラーに割り当てようとします(つまりundefined、割り当てられたときである可能性があります)。あなたがする必要があるのは、次のようにそのハンドラーに関数を割り当てることです:

document.getElementById('specialp').onclick = function()
{
    alert('clicked');
};

HTMLで同じことを行うと、DOMはそのコンテンツを関数に自動的にラップします。

于 2012-04-27T18:16:40.783 に答える