选择JavaScript中的特定变量

时间:2018-08-29 08:15:55

标签: javascript

我想在循环中使用一个函数,这是我的代码:

 for (var i =a ; i < a+s; i++){
   this.mat[i].color.setHex(0xffffff)
   this.mat[b].color.setHex(0xffffff)


    this.domEvents.addEventListener(this.cases[i], 'click', function(event){

      this.tween = new TWEEN.Tween(pions.position)
                    .to({ x: cases[i].position.x, y: cases[i].position.y, z: 5}, 10000)
                    .start();

  }, false)
     this.domEvents.addEventListener(this.cases[b], 'click', function(event){

        this.tween = new TWEEN.Tween(pions.position)
                     .to({ x: cases[b].position.x, y: cases[b].position.y, z: 5}, 10000)
                     .start();
  }, false)

     b--  
  }

我的问题是addEventListenercase[i].position的功能。我想使用i中的this.cases[**i**],而不是循环中的i

1 个答案:

答案 0 :(得分:0)

尝试改用函数来附加事件,如:

for (var i = a; i < a + s; i++) {
  this.mat[i].color.setHex(0xffffff)
  this.mat[b].color.setHex(0xffffff)

  attachEvent(this, i);
  attachEvent(this, b);

  b--;
}

function attachEvent(_this, index) {
  _this.domEvents.addEventListener(_this.cases[index], 'click', function(event) {

    _this.tween = new TWEEN.Tween(pions.position)
      .to({
        x: cases[index].position.x,
        y: cases[index].position.y,
        z: 5
      }, 10000)
      .start();
  }, false)
}