簡體   English   中英

無法找出onMouseOver

[英]Cannot figure out onMouseOver

我只是在混亂地學習JavaScript,我想通過將鼠標放在鏈接上來更改背景顏色。 真的,我只是想了解onMouseOver。 我有:

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

我也嘗試將其應用於單選按鈕,這會改變bg的顏色onclick,但是,如果我想要預覽顏色(通過使用onMouseOver),則該部分將無法正常工作,因為上述內容不起作用。

解決方案是如此明顯以至於我忽略了它嗎? 謝謝你的幫助。

不,這不是顯而易見的。 JavaScript不是那么容易處理。 而且,您必須學習可在JavaScript中使用的對象的類型和名稱。

對象document沒有元素bgcolor

您正在嘗試的是更改文檔元素主體的CSS樣式

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

可以通過嘗試使用文檔對象模型(DOM)來做到這一點,但是您必須尊重這種情況。 文檔屬性的正確形式是bgColor而不是bgcolor(大寫字母C)。

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

但這是不可取的。 為什么?

  1. 文檔是文檔對象模型(DOM)的一部分,因此主要負責文檔的數據和結構。 documentbgColor屬性可能是CSS之前的深色HTML中世紀遺跡。
  2. 該文檔應包含數據,而不是數據的表示形式(即樣式)。 那就是每個DOM元素的style屬性的目的。
  3. 您可以簡單地通過為正文提供背景顏色的CSS樣式來否決文檔的bgColor。 該文檔仍然具有bgColor屬性和值,但是您看到的是CSS樣式的值

onmouseover必須全部為小寫onmouseover ,並且必須等於一個函數(如果在其自己的文件中,則為object.onmouseover=function(){//some code...}如果是內聯,則為onmouseover="functionName()"

這是一個示例:更新了http://jsfiddle.net/TH2u3/1/

以下作品:

<!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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM