问答详情
源自:4-1 JS多物体动画

为什么不能创建函数?

<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也一样,不能创建。这是为什么?

提问者:Wo_o明 2016-02-20 15:19

个回答

  • witchy
    2016-02-20 20:26:39
    已采纳

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

  • witchy
    2016-02-21 03:44:11

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

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

  • Wo_o明
    2016-02-20 23:14:19

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

  • Betsey
    2016-02-20 20:38:09

    楼上的说的对