第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于高亮設置的疑問

我想直接在tr上綁定onmouseover和onmouseout事件

<tr onmouseover="mouse(this)">

然后

function mouse(obj){

? ?obj.style.backgroundColor ="#f2f2f2";

? ?}

window.onload = function(){

mouse();

} ?

做了這些改動之后

會報錯

Uncaught TypeError: Cannot read property 'style' of undefined

哪位大神給解答一下。

正在回答

3 回答

你的mouse方法調(diào)用的時候需要參數(shù)啊,

0 回復 有任何疑惑可以回復我~
#1

慕粉3308051 提問者

非常感謝!
2016-07-28 回復 有任何疑惑可以回復我~

要解決這個問題,首先要了解window.onload到底是什么?

window.onload用法詳解:
網(wǎng)頁中的javaScript腳本代碼往往需要在文檔加載完成后才能夠去執(zhí)行,否則可能導致無法獲取對象的情況,為了避免這種情況的發(fā)生,可以使用以下兩種方式:
一.將腳本代碼放在網(wǎng)頁的底端,這樣在運行腳本代碼的時候,可以確保要操作的對象已經(jīng)加載完成。
二.通過window.onload來執(zhí)行腳本代碼。
第一種方式感覺比較凌亂(其實推薦使用),往往我們需要將腳本代碼放在一個更為合適的地方,那么window.onload方式就是一個良好的選擇。window.onload是一個事件,當文檔加載完成之后就會觸發(fā)該事件,可以為此事件注冊事件處理函數(shù),并將要執(zhí)行的腳本代碼放在事件處理函數(shù)中,于是就可以避免獲取不到對象的情況。

----------------------------------來自http://www.softwhy.com/forum.php?mod=viewthread&tid=6191

因為是順序加載的,所以有些對象未加載完程序就不能執(zhí)行,所以才使用window.onload,但是在這題在調(diào)用事件onmouseover時tr已經(jīng)加載,所以不需要用到window.onload。刪掉就可以解決。

還有一種就是如果你是要一開始初始化背景的話,那么請把

window.onload = function(){

mouse(); ?//改為mouse(document.getElementById("tr")) ?<-這里為了方便給tr加了id“tr”

} ?

因為你要調(diào)用函數(shù)要注意,這個函數(shù)需不需要給他實際參數(shù),如果不給的話就會出錯,比如Uncaught TypeError: Cannot read property 'style' of undefined 這個,因為沒有對象,所以它的style自然是undefined

實現(xiàn)出來:

<!DOCTYPE HTML>

<html>

<head>

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

<title> </title>

<script type="text/javascript">

function mouse(obj){

? ?obj.style.backgroundColor ="red";

? ?}

window.onload = function(){

mouse(document.getElementById("tr"));

}

</script>

</head>

<body >

<table>

<tr id="tr" onmouseover="mouse(this)">

<th>dadadsdasdd</th>

<tr>

</table>

</body>

</html>


1 回復 有任何疑惑可以回復我~
#1

慕粉3308051 提問者

第一次提問,我以為都可以采納呢,回答得很詳細,謝謝。
2016-07-28 回復 有任何疑惑可以回復我~

window.onload = function(){mouse();} ?會在頁面加載之后執(zhí)行mouse()方法,你沒有傳遞任何參數(shù)

function mouse(obj){obj.style.backgroundColor ="#f2f2f2";}這個方法接受一個參數(shù),改變參數(shù)對象的style背景樣式,而你沒有傳入這個參數(shù),那么方法里默認obj為undefined; ?就跟你var聲明了一個參數(shù),卻沒有初始化一樣。找不到對象,不知道操作誰去,自然報錯


0 回復 有任何疑惑可以回復我~
#1

慕粉3308051 提問者

第一次提問,我以為都可以采納呢,回答得很詳細,謝謝。
2016-07-28 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
JavaScript進階篇
  • 參與學習       468964    人
  • 解答問題       22582    個

本課程從如何插入JS代碼開始,帶您進入網(wǎng)頁動態(tài)交互世界

進入課程

關于高亮設置的疑問

我要回答 關注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號