亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

關于回調函數為什么不能直接將執行的函數作為參數而要嵌套一個匿名函數?

<!DOCTYPE?html>
<html>
<head>
	<meta?charset="utf-8">
	<title></title>
	<style?type="text/css">
		ul,li{
			list-style:?none;
		}
		ul?li{
			width:?200px;
			height:?100px;
			background:?red;
			margin-bottom:?20px;
			border:?4px?solid?#000;
			font-size:?8px;
			filter:?alpha(opacity:30);
			opacity:?0.3;
		}
	</style>
	<script?type="text/javascript">
		window.onload=function(){
			var?li1=document.getElementById("li1");
			li1.timer=null;
			li1.onmouseover=function(){
				startMove(li1,400,'width',startMove(li1,200,'height'));
			}
				li1.onmouseout=function(){
					startMove(li1,200,'width',startMove(li1,100,'height'));
			}
		}
		function?startMove(obj,iTarget,attr,fn){
			clearInterval(obj.timer);
			obj.timer=setInterval(function(){
				var?icur=0;
				if(attr=='opacity'){
					icur=Math.round(parseFloat(getStyle(obj,attr))*100);
					
				}
				else{
					icur=parseInt(getStyle(obj,attr))
				}
				var?speed=(iTarget-icur)/10;
					speed=speed>0?Math.ceil(speed):Math.floor(speed);
					if(icur==iTarget)
						{clearInterval(obj.timer);
							if(fn)?{fn();}
						}
					else{
						if?(attr=='opacity')?{obj.style[attr]=(icur+speed)/100;}
						else?{obj.style[attr]=icur+speed+'px';}?}
		},20);
		}
		function?getStyle(obj,attr){
			if(obj.currentStyle){
				return?obj.currentStyle[attr];
			}
			else{
				return?getComputedStyle(obj,false)[attr];
			}
		}
	</script>
</head>??
<body>
<ul>
	<li?id="li1"></li>
</ul>
</body>
</html>

求解關于回調函數為什么不能直接將執行的函數作為參數而要嵌套一個匿名函數?

正在回答

1 回答

看了半天才弄明白你的意思:

startMove(li1,400,?'width',?startMove(li1,200,'height'));

startMove(li1,200,'height')意思是立即執行這個函數,這是一個執行的動作,不能作為參數傳遞。

startMove(li1,400,?'width',?function(){startMove(li1,200,'height')});

function(){startMove(li1,200,'height')}是定義一個匿名函數,函數內隨便執行什么。


不知道我這樣有沒有說清楚

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

徐錦杰 提問者

非常感謝!
2017-03-08 回復 有任何疑惑可以回復我~
#2

徐錦杰 提問者

明白了,3q
2017-03-08 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關于回調函數為什么不能直接將執行的函數作為參數而要嵌套一個匿名函數?

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

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號