创建动态变量& JS中的功能

时间:2011-06-25 01:19:02

标签: javascript variables dynamic this

我对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);
       }
   };

我的问题在于&#39; this.overTrue&#39;布尔变量。除了IE之外,它似乎适用于所有东西。我得到了对象&#39; overTrue&#39;不存在。因为我从来没有宣布它,所以对我来说哪种有意义。有没有办法让我宣布var&#39; overTrue&#39;在里面&#39;这个&#39;?或者我是以完全错误的方式解决这个问题?

提前致谢

1 个答案:

答案 0 :(得分:0)

似乎IE正在搞砸最后一个参数,可能的解决方法可能是:

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

在每个“理智”的浏览器中,setTimeout签名都是这样的:

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

在IE 中,签名为slightly different

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

Bravo IE。你再一次让我感到惊讶