为了账号安全,请及时绑定邮箱和手机立即绑定

为什么不能创建函数?

<script type="text/javascript" language="javascript">
 window.onload =function(){
  var aDiv = document.getElementsByTagName("div");
  for (var i=0;i<aDiv.length;i++)
  aDiv[i].alpha = 30;
  aDiv[i].onmouseover = function(){
   changes(this,100);
  }
  aDiv[i].onmouseout = function(){
   changes(this,30);
  }
 }
 function changes(obj,num){
  clearInterval(obj.timer);
  obj.timer = setInterval(function(){
   var speed = 0;
   obj.alpha>num?speed=-10:speed=10;
   if(obj.alpha == num)
   {
    clearInterval(obj.timer);
   }
   else
   {
    obj.style.filter = "alpha(opacity:"+obj.alpha+speed+")";
    obj.style.opactiy = (obj.alpha + speed)/100;
   }
  },30)
 }
</script>


浏览器提示:Uncaught TypeError: Cannot set property 'onmouseover' of undefined

包括onmouseout也一样,不能创建。这是为什么?

正在回答

4 回答

你for循环少写了花括号吧 没有括起来

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

Wo_o明 提问者

谢谢~~不过我加了括号之后还是没出来效果。
2016-02-20 回复 有任何疑惑可以回复我~
#2

witchy 回复 Wo_o明 提问者

obj.style.opactiy = (obj.alpha + speed)/100; obj.style.opacity = (obj.alpha + speed)/100; 你的 opacity 拼错了 仔细看看
2016-02-21 回复 有任何疑惑可以回复我~
#3

witchy 回复 Wo_o明 提问者

还有else 里面 应该这样写 obj.alpha+=speed; obj.style.filter='alpha(opacity:'+obj.alpha+')'; obj.style.opacity = obj.alpha/100; 否则 你的 obj.alpha 永远是 30 +10 =40 的 透明度 。
2016-02-21 回复 有任何疑惑可以回复我~

obj.style.opactiy = (obj.alpha + speed)/100; 

obj.style.opacity = (obj.alpha + speed)/100;
你的 opacity 拼错了 仔细看看 

0 回复 有任何疑惑可以回复我~

为什么我加了括号还是没出来效果呢?浏览器也没有提示什么错误。

0 回复 有任何疑惑可以回复我~

楼上的说的对

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么不能创建函数?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信