2012-02-17 2 views
1

У меня есть очень простой код, и я не знаю, почему функция Foo не вызывается, когда мышь находится над изображением:Image Tag OnMouseOver не сгорело

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 
} 

Наконец, рассмотрим меняя Foo на foo, поскольку функции, начинающиеся с заглавных букв, обычно обозначают конструкторы в JavaScript.

+0

Я изменил ее на foo, но это не сработало! – azamsharp

+2

@azamsharp - 'Foo' все равно будет работать, я просто сказал, что * как только вы исправили проблему *, вам следует рассмотреть возможность переименования его в' foo' –

1

Если это ваш фактический код, то единственный вопрос заключается в том, что вам нужно обернуть JavaScript в <script>:

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

Смотреть демо:

+0

См. Мой обновленный вопрос. – azamsharp

1

EDIT : С кодом ничего не случилось, если у вас есть скрипт, включенный в <head>

его можно использовать: jsfiddle

+0

Это НЕ РАБОТАЕТ! – azamsharp

+0

@azamsharp - как , и я сказал вам, что ваш код указан правильно. По какой-то причине ваша страница не загружает Foo. –

+0

Вот мой JSFiddle. JavaScript должен быть загружен на onLoad. http://jsfiddle.net/At2zt/ – azamsharp

Смежные вопросы