2009-06-13 3 views
4

javascript DOMに空のdivを作成しています。しかし、私はそれにいくつかの関数を呼び出すと、例えば、空のdivがjavascriptで認識されない

var hover = document.createElement("div"); 
    hover.className = "hover"; 
    overlay.appendChild(hover); 
    hover.onClick = alert("hi"); 

onClick機能が動作していません。代わりに、スクリプトのdiv作成部分に達するとすぐに警告を表示します。何が間違っているのですか?

hover.onclick = function() { 
    alert('hi!'); 
} 

答えて

4

要素にイベントをアタッチするaddEventHandler & attachEventを試してみてください:

if (hover.addEventListener) 
{ 
    // addEventHandler Sample : 
    hover.addEventListener('click',function() { 
     alert("hi"); 
    },false); 
} 
else if (hover.attachEvent) 
{ 
    // attachEvent sample : 
    hover.attachEvent('onclick',function() { 
     alert("hi"); 
    }); 
} 
else 
{ 
    hover.onclick = function() { alert("hi"); }; 
} 
+0

素晴らしいです。これはうまくいった。 – amit

+1

これは、W3Cイベントモデルに準拠しているブラウザでのみ機能します。 IEの場合は、attachEventを使用する必要があります。 – James

+0

ありがとうございましたJ-P、私は私の答えを更新しました。 – Canavar

2

あなたは、関数内でonclickのを置くために、このようなものが必要onClick " JavaScriptは大文字と小文字を区別

また、機能が必要です。 alert(someString)の戻り値は関数ではありません。

+0

これは問題を幾分解決しました。ホバーエリアをクリックしても警告が表示されなくなりました。 より有益であるためには、ホバーは空のdivです。 CSSクラス定義: .hover { \t幅:320px; \t身長:75px; \tポジション:絶対; \t左:28%; \tトップ:32%; \t z-インデックス:9999; \t背景色:#000; \tオーバーフロー:非表示。 } – amit

0

プロパティ名は "onclickの" ない "

関連する問題