2009-12-31 3 views
0

Я учусь web development. И я только начал читать о javascript. Как язык, у меня нет никаких проблем с ним, но я сталкиваюсь с неприятной ситуацией:Обмен изображениями с помощью javascript

Я просто попытался выполнить свой первый javascript для простого действия: изменение атрибута src <img>. Итак, давайте представим, у меня есть этот код в index.html:

<html> 
    <head> 
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 

    <script type="text/javascript" language="javascript" charset="utf-8"> 
     function activate(id) 
     { 
     document.images(id).src ="home-on.jpg"; 
     } 

     function deactivate(id) 
     { 
     document.images(id).src ="home-off.jpg"; 
     } 
    </script> 
    </head> 

    <body id="ID"> 
    <img id="home" src="home-off.jpg" 
    onmouseover="activate('home')" 
    onmouseout="deactivate('home')"/> 
    </body> 
</html> 

код прекрасно работает на Google Chrome (поменять местами изображения при наведении курсора мыши, и вне). Но мне не повезло с firefox. Любая помощь? совет?

+0

совет: используйте css для выполнения этой функции :) – Jason

ответ

6

Вы используете неправильный синтаксис для получения изображений.

Вам нужно написать document.images[id] (с кронштейнами [], а не круглые скобки ())

document.images коллекция представляет собой ассоциативный массив, который индексируется с помощью скобок.
Скобки используются для вызова функции; Я не знаю, почему ваш код работал в Chrome.

+3

Да, и он также может рассмотреть возможность использования document.getElementById (id). –

+0

Хорошо, спасибо. Я не знал, что document.iamges был массивом, я на самом деле думал, что это функция! , И да, я программист, поэтому я знаю, как обычно вызывается функция. – Fabzter

+0

Вы будете удивлены средним уровнем некоторых из начинающих здесь. Кроме того, если бы вы пришли из VB, это было бы для вас новым. – SLaks

1

Компания SLaks ввела правильный ответ на этот вопрос.

Однако, вы найдете в JavaScript, что существует много случаев, когда этот неправильный синтаксис будет работать в одном браузере, но не в следующем. Для обеспечения совместимости кросс-браузера в JavaScript вы можете найти такую ​​библиотеку, как jQuery, очень удобно. Он не только пытается обеспечить, чтобы ваш JavaScript-код был совместим со всеми браузерами, но также расширяет много функциональности.

+0

Чем ты, я уже думал об использовании jQuery, но я хотел начать с земли, прежде чем попасть в рамки. :-) – Fabzter

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