Не могу разобраться с onMouseOver - PullRequest
0 голосов
/ 29 марта 2012

Я просто бездельничаю, изучая JavaScript, и я хотел изменить цвет фона, наведя указатель мыши на ссылку.На самом деле я просто хочу узнать о onMouseOver.У меня есть:

<a href="http://www.w3schools.com" onMouseOver="document.bgcolor='lightgreen'">Visit W3Schools</a>

Я попытался применить это также к переключателям, которые изменили бы цвет bg при нажатии, однако, если бы я хотел предварительный просмотр цвета (с помощью onMouseOver), эта часть не работалане с вышеупомянутым.

Является ли решение настолько очевидным, что я его пропускаю?Спасибо за любую помощь.

Ответы [ 3 ]

2 голосов
/ 29 марта 2012

onmouseover все должны быть в нижнем регистре onmouseover и должны соответствовать функции (object.onmouseover=function(){//some code...} если в своем собственном файле и onmouseover="functionName()" если встроенный)

Вот пример: обновленоhttp://jsfiddle.net/TH2u3/1/

2 голосов
/ 29 марта 2012

Нет, это не очевидно. JavaScript не так прост в обращении. И вам нужно узнать типы и имена объектов, которые вы можете использовать в JavaScript.

Объект document не имеет элемента bgcolor

Вы пытаетесь изменить CSS-стиль тела элемента документа

document.body.style.backgroundColor = 'lightgreen'; 

Можно сделать это, используя объектную модель документа (DOM), что вы и пытались, но вы должны уважать случай. правильная форма атрибута документа: bgColor, а не bgcolor (заглавная буква C).

// bad style
document.bgColor = 'lightgreen';

Но это не рекомендуется. Почему?

  1. документ является частью объектной модели документа (DOM) и поэтому в основном отвечает за данные и структуру ... хорошо ... документ. Атрибут bgColor document может быть реликтом темный HTML средневековый, до CSS времен.
  2. Документ должен содержать данные, а не представление (или стиль) данных. Для этого предназначен атрибут style каждого элемента DOM.
  3. Вы можете отменить bgColor документа, просто назначив основному стилю CSS-стиль для цвета фона. Документ по-прежнему имеет атрибут bgColor и значение, но вы видите значение стиля CSS
0 голосов
/ 29 марта 2012

следующих работ:

<!DOCTYPE html>
<html>
    <head>
        <script>
            var p = {
                onload: function() {
                    var a = document.getElementsByTagName("a")[0];
                    a.onmouseover = function() {
                        document.body.style.backgroundColor = "blue";
                    };
                    a.onmouseout = function() {
                        document.body.style.backgroundColor = "green";
                    };
                }
            };
    </script>
</head>
<body onload="p.onload()">
    <a href="http://www.w3schools.com">Visit W3Schools</a>
</body>

...