为什么这里的
Li1 = document.getElementById('li1');
Li1.onmouseout = function(){
startMove(this,'opacity',30,function(){
startMove(Li1,'height',100,function(){
startMove(Li1,'width',200)
})
});
Li1 换成 this 就不行了么?只有一个函数startMove 的时候可以
为什么这里的
Li1 = document.getElementById('li1');
Li1.onmouseout = function(){
startMove(this,'opacity',30,function(){
startMove(Li1,'height',100,function(){
startMove(Li1,'width',200)
})
});
Li1 换成 this 就不行了么?只有一个函数startMove 的时候可以
2014-10-05
因为startMove()是函数,而不是DOM的方法,
除非你在那个startMove的js代码块的头部加上
Object.prototype.startMove=startMove;
然后你才能写:
Li1.onmouseout = function(){this.startMove(this,'opacity',30)}
当然,要是这样的话,也不用传入obj了,直接把startMove()函数块里面的obj统统换成this,去掉函数定义里面的这个残烛,函数就写成这样了:
定义 function startMove(attr,iTarget,fn){…}
调用 Li1.onmouseout = function(){this.startMove('opacity',30)}
你看,跟jquery是一模一样吧。
jquery的$()本身就是一个函数对象,它早就给$()这个函数对象添加过animate()方法了。
举报