2016-07-01 2 views
0

Я ищу функциональность, описанную в теме. Когда пользователь наводится над изображением (id = "sie"), фон ячейки таблицы (id = "sein_img") должен измениться. Я пробовал использовать этот код, но я не уверен, почему он не работает. Помощь очень ценится!Изменение <td> фонового цвета при наведении на изображение

<script type="text/javascript"> 
      document.getElementById("sein_img").onmouseover = function() { 
       document.getElementById("sie").style.backgroundColor = "red"; 
      } 
    </script> 

<td id="sie" style="background-color: #f3f5f7;">&nbsp;sie</td> 

<img id="sein_img" src="images/stories/bullet_white.png" /> 
+0

https://jsfiddle.net/afopp12s/1/ –

ответ

1

Ваш скрипт работает прекрасно, но только если вы выполняете <script> после инициализации затронутых HTML тегов (в вашем случае <div> с идентификатором sein_img). Элемент еще не доступен, поэтому Mouseover слушатель не установлен элемент (элемент, который вы получаете с document.getElementById() является undefined

Таким образом, чтобы решить вашу проблему, вы можете выбрать между этими 2-х вариантов:.

  1. Переместите тэг <script> в нижней части страницы или, по крайней мере, после последнего элемента, который вы хотите установить для прослушивателя.
  2. Подождите, пока документ будет готов, прежде чем устанавливать прослушиватель в элемент. jQuery ($(document).ready(function() { ... });)
+0

Какая глупая ошибка, большое вам спасибо! – sojutyp

0

Переместить сценарий для выполнения после рендеринга вашего html. Я думаю, что он будет работать только с действительной таблицей html.

<table><tr><td id="sie" style="background-color: #f3f5f7;">&nbsp;sie</td></tr></table> 

<script type="text/javascript"> 
     document.getElementById("sein_img").onmouseover = function() { 
      document.getElementById("sie").style.backgroundColor = "red"; 
     } 
</script> 
+0

почему ??????????? –

+0

Это ...? Это таблица для макетирования? В каком году мы в ..? 1999? А также неразрывные пробелы ... –

+0

@ ssc-hrep3 Я просто использую код из вопроса! – conradj

0

Вам необходимо написать это <script /> после html-кодов. Вы можете проверить this plunker.

+0

Thats it. Спасибо! – sojutyp

0

Проблема заключается в том:

  1. Вы доступ к элементам до их создания.
  2. Вы должны поместить элемент в таблицу , иначе его атрибуты не будут интерпретироваться (в данном случае это идентификатор и стиль).

<table> 
 
    <td id="sie" style="background-color: #f3f5f7;">&nbsp;sie</td> 
 
</table> 
 
<img id="sein_img" src="images/stories/bullet_white.png" /> 
 
<script type="text/javascript"> 
 
    document.getElementById("sein_img").onmouseover = function() { 
 
    document.getElementById("sie").style.backgroundColor = "red"; 
 
    } 
 
</script>

Если вы просто поставить метку в нижней части тела, код не будет работать.

<td id="sie" style="background-color: #f3f5f7;">&nbsp;sie</td> 
 
<img id="sein_img" src="images/stories/bullet_white.png" /> 
 
<script type="text/javascript"> 
 
    document.getElementById("sein_img").onmouseover = function() { 
 
     document.getElementById("sie").style.backgroundColor = "red"; 
 
    } 
 
</script>

+0

спасибо вам тоже, это проблема. – sojutyp