2012-02-17 9 views
1

を解雇:画像タグのonmouseoverないが、私は非常に単純なコードを持っているし、マウスが画像の上にあるときにはFoo機能が発射されていない理由を私はわからない

here <img id="sss" alt="some image" onmouseover="Foo(this);" src="https://www.google.com/intl/en_com/images/srpr/logo3w.png" width="16" height="16" /> 

<div onmouseover="Foo(this);"> 
    THIS IS DIV 
</div> 

function Foo(obj) 
{ 
    alert('s'); 
} 

UPDATE 1:

何実際にはイメージ要素を動的に作成してページに追加しています。 Foo関数はすでにJSファイルの中にありますが、呼び出されることはありません。

+0

イメージをどのように追加しても問題ありません。問題は、何らかの理由でFooが利用できないということです。あなたのページにプレーンボタンを追加し、そのonclickを 'Foo(this)'に設定して起動するかどうか確認してください。 –

答えて

2

現在のコードはthis fiddleと表示されています。あなたの問題を推測しているのは、あなたのページにFooがグローバルではないということです。


また、代わりにあなたの関数にパラメータとしてthisを渡すので、あなたは、最後にcall

onmouseover="Foo.call(this);" 

function Foo() { 
    alert(this.src); //this is the img you just mouse-overed 
} 

を使用してあなたの関数の内部でこの値として設定を検討することができますFoofooに変更します。大文字で始まる関数は、通常、JavaScriptのコンストラクタを表すためです。

+0

私はfooに変更しましたが、うまくいかなかった! – azamsharp

+2

@azamsharp - 'Foo'は動作しますが、問題を修正したら* fooに変更することを検討してください。 –

1

それはあなたの実際のコードだ場合は、唯一の問題は、あなたが<script>でJavaScriptをラップする必要があるということです:スクリプトを持っている限り、コードに何も問題はありません<head>

試してみてください:jsfiddle

+0

最新の質問をご覧ください。 – azamsharp

1

EDIT:

<script> 
function Foo(obj) { 
    alert('s'); 
} 
</script>​ 

はデモを参照してください:

+0

それはできませんでした! – azamsharp

+0

@azamsharp - と私は両方言っている、上記のコードが正しいです。あなたのページは何らかの理由でFooをロードしていません。 –

+0

私のJSFiddleはここにあります。 JavaScriptはonLoadにロードする必要があります。 http://jsfiddle.net/At2zt/ – azamsharp

関連する問題