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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

obj.onmouseover=function(){}和obj.onmouseover=change() 的區(qū)別


我在回答http://idcbgp.cn/code/1636的時(shí)候,碰到一個(gè)問(wèn)題
在下面的自定義函數(shù)bgchange中,如果我調(diào)用change函數(shù),則默認(rèn)給出的前倆行的背景顏色不會(huì)改變,而自己添加的背景顏色可以改變;
如果我在后邊直接function(){function body},則都可以改變,不知道這是為什么?
求解答!

<!DOCTYPE?html>
<html>
?<head>
??<title>?new?document?</title>??
??<meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"/>???
??<script?type="text/javascript">?
//????????function?mouseEvent(){
//????????????var?trs=?document.getElementsByTagName("tr");
//????????????for?(var?i=0;i<trs.length;i++){
//????????????????trs[i].setAttribute("onmouseover","change(this)");
//????????????????trs[i].setAttribute("onmouseout","back(this)");
//????????????????}
//????????????
//	???????}
????????function?change(ev){
????????????ev.style.backgroundColor="#f2f2f2";
????????????}
????????function?back(ev){
????????????ev.style.backgroundColor="#fff";
????????????}
????????function?removeEvent(){
????????????var?as=?document.getElementsByTagName("a");
????????????for?(var?i=0;i<as.length;i++){
????????????????as[i].setAttribute("onclick","deleteraw(this)");
????????????}
????????}??
??????
??????
??????function?bgchange(obj){
??????????#這里為什么=change(obj)不可以,而=function(){}就可以?
??????????obj.onmouseover?=?change(obj);//function(){??????????????obj.style.backgroundColor="#f2f2f2";??????????};
??????????obj.onmouseout?=?back(obj);???//function(){??????????????obj.style.backgroundColor="#fff"??????????};
??????}
??????
??????window.onload?=?function(){
??????????????????
?????//?鼠標(biāo)移動(dòng)改變背景,可以通過(guò)給每行綁定鼠標(biāo)移上事件和鼠標(biāo)移除事件來(lái)改變所在行背景色。
????????????//mouseEvent();
????????????removeEvent();
???????????var?trs=document.getElementsByTagName("tr");
???????????for(var?i=0;i<trs.length;i++){
??????????????bgchange(trs[i]);
??????????}?
??????????
??????????
	?}
?????
??????//?編寫一個(gè)函數(shù),供添加按鈕調(diào)用,動(dòng)態(tài)在表格的最后一行添加子節(jié)點(diǎn);
?????function?add(){
????????????var?table=document.getElementById("table");
????????????var?newtr=document.createElement("tr");
????????????newtr.setAttribute("onmouseover","change(this)");
????????????newtr.setAttribute("onmouseout","back(this)");
????????????var?newtd1=document.createElement("td");
????????????var?newtd2=document.createElement("td");
?????????
????????????var?newtd3=document.createElement("td");
????????????newtd1.innerHTML="XX";
????????????newtd2.innerHTML="YY";
????????????var?newa=document.createElement("a");
????????????newa.href="javascript:;"
????????????newa.setAttribute("onclick","deleteraw(this)");
????????????newa.innerHTML="刪除";
????????????table.appendChild(newtr);
????????????newtr.appendChild(newtd1);
????????????newtr.appendChild(newtd2);
????????????newtr.appendChild(newtd3);
????????????newtd3.appendChild(newa);
????????????}
????		
???	?
?????//?創(chuàng)建刪除函數(shù)
?????function?deleteraw(ev){
?????????var?pa?=ev.parentNode.parentNode.parentNode;
?????????
?????????pa.removeChild(ev.parentNode.parentNode);
?????}


??</script>?
?</head>?
?<body>?
	???<table?border="1"?width="50%"?id="table">
	???<tr>
		<th>學(xué)號(hào)</th>
		<th>姓名</th>
		<th>操作</th>
	???</tr>??

	???<tr>
		<td>xh001</td>
		<td>王小明</td>
		<td><a?href="javascript:;"?>刪除</a></td>???<!--在刪除按鈕上添加點(diǎn)擊事件??-->
	???</tr>

	???<tr>
		<td>xh002</td>
		<td>劉小芳</td>
		<td><a?href="javascript:;"?>刪除</a></td>???<!--在刪除按鈕上添加點(diǎn)擊事件??-->
	???</tr>??

	???</table>
	???<input?type="button"?value="添加一行"??onclick="add()"/>???<!--在添加按鈕上添加點(diǎn)擊事件??-->
?</body>
</html>


正在回答

3 回答

前面的同學(xué)看來(lái)并沒(méi)有認(rèn)真看問(wèn)題啊,答非所問(wèn)。

這里我發(fā)表一下我的看法。

先拋出答案:obj.onmouseover=function(){};是固定用法。

這里我先解釋一下obj.onmouseover=change();為什么一定不可以。我們先假設(shè)這句代碼成立,那么此時(shí)obj.onmouseover就被賦予了change()函數(shù)的返回值?,F(xiàn)在看看你的change()函數(shù)有return語(yǔ)句嗎?顯然沒(méi)有吧?那obj.onmouseover的值是什么呢?ㄟ( ▔, ▔ )ㄏ ?鬼知道。

然后我們來(lái)看下為什么說(shuō)加粗的那句代碼是固定用法呢?首先你得明白對(duì)象有屬性和方法。

比如:

var?person=new?Object();//先定義一個(gè)空對(duì)象。
person.name="小明";//定義對(duì)象的屬性。
person.showName=function(){?alert("我叫"+this.name);?};//定義對(duì)象的方法。

那么obj是一個(gè)元素節(jié)點(diǎn),也是一個(gè)對(duì)象。那么onmouseover事件的觸發(fā)總要進(jìn)行一些操作吧?那么對(duì)象的屬性和方法那個(gè)能進(jìn)行一些操作呢?那就是方法啦。

所以onmouseover是obj的一個(gè)方法,定義的方法和showName類似。


1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

慕姐8289045

能問(wèn)一下嗎?obj.onmouseover=function(){}是什么意思?定義一個(gè)方法時(shí)不是function加方法名嗎?這個(gè)都沒(méi)有方法名,這是啥意思?
2016-07-26 回復(fù) 有任何疑惑可以回復(fù)我~
#2

qq_brucelee_13817038

鼠標(biāo)停留在對(duì)象上時(shí)觸發(fā)一個(gè)函數(shù)操作(function).
2016-09-07 回復(fù) 有任何疑惑可以回復(fù)我~

全局變量和局部變量的區(qū)別,你參數(shù)給了obj,把參數(shù)刪了 加一個(gè)for循環(huán)tr元素就可以了

0 回復(fù) 有任何疑惑可以回復(fù)我~

差不多,,看你的習(xí)慣了,function(){}是臨時(shí)的匿名函數(shù),,只能在這個(gè)地方調(diào)用,,其他地方想調(diào)用還得重新定義!

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

MuYi0420 提問(wèn)者

額,我的意識(shí)是我這個(gè)代碼里邊。。為啥有一個(gè)可以用有一個(gè)不可用。。。他們倆貌似還是有點(diǎn)區(qū)別。。。
2016-03-17 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
JavaScript進(jìn)階篇
  • 參與學(xué)習(xí)       468808    人
  • 解答問(wèn)題       22582    個(gè)

本課程從如何插入JS代碼開(kāi)始,帶您進(jìn)入網(wǎng)頁(yè)動(dòng)態(tài)交互世界

進(jìn)入課程

obj.onmouseover=function(){}和obj.onmouseover=change() 的區(qū)別

我要回答 關(guān)注問(wèn)題
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)