在JS中创建动态变量和函数



我是JS的新手,但熟悉AS2(Flash)。在Flash中,我可以将变量放入movieclips(对象)中,并尝试在这里用下拉菜单做类似的事情:

http://tamalecreative.com.au/korban/scripts/dropdown.js

特别是:

   function dropOpen() {
       dropClose(this)
       this.overTrue = true;
       console.log(this.overTrue);
       myNum = 0;
       this.liLength = ($(this).find('ul').children().length)+1;
       for (i=0;i<=this.liLength;i++) {
           this.animateTimer = window.setTimeout(animateIn, (80 * i), this);
       }
   };

我的问题是"this.overTrue"布尔变量。它似乎适用于除IE之外的所有应用程序。我得到一个错误,即对象"overTrue"不存在。这对我来说是有意义的,因为我从来没有声明过它。有没有办法让我在"this"中声明var"overTrue"?还是我完全错了?

提前感谢

看起来IE在最后一个参数上搞砸了,一个可能的解决方法可能是:

var that = this;
this.animateTimer = window.setTimeout(function() {
  animateIn(that);
}, (80 * i));

在每个"正常"浏览器中,setTimeout签名如下:

window.setTimeout(func, delay, [param1, param2, ...]);

然而,在IE的签名略有不同:

window.setTimeout(vCode, iMilliSeconds [, sLanguage])

太棒了IE。你又一次让我大吃一惊

最新更新