停止功能的方法

时间:2017-01-07 10:24:48

标签: javascript jquery

我有一个小函数,它每隔100毫秒将数组添加到数组中的元素

omp_set_nested(1);

#pragma omp parallel for
    for(i=0;i<N;i++) {
    #pragma omp parallel for
        for(j=0;j<N;j++) {
            C[i][j]=0.; // set initial value of resulting matrix C = 0
            #pragma omp parallel for
                for(m=0;m<N;m++) {
                    C[i][j]=A[i][m]*B[m][j]+C[i][j];
                }
            printf("C:i=%d j=%d %f \n",i,j,C[i][j]);
      }
   }

我正在尝试定义停止方法,将停止在元素上添加类,并停止在我将指向的最后添加的元素或元素上。有什么建议? 我尝试使用 var index = 0; var $pcs = $('.participant'); var setWinCls = { start: function(i){ if(i>0){ $pcs.eq(i-1).removeClass('winner'); } if(i == $pcs.length){ i=0; } $pcs.eq(i).addClass('winner'); setTimeout(function() { setWinCls.start(i+1) },100); }, stop: function () { ... } }; ,但没有帮助。

1 个答案:

答案 0 :(得分:0)

stopped添加标记(setWinCls),并使用stop方法将其更改为true。只要stoppedfalse,就会调用setTimeout

var $pcs = $('.participant');

var setWinCls = {
  stopped: false, // the flag
  start: function(i) {
    if (i > 0) {
      $pcs.eq(i - 1).removeClass('winner');
    }
    if (i == $pcs.length) {
      i = 0;
    }
    $pcs.eq(i).addClass('winner');

    // if stopped is false, setTimeout will be called
    this.stopped || setTimeout(function() {
      setWinCls.start(i + 1)
    }, 100);
  },
  stop: function() {
    this.stopped = true; // changing stopped to true
  }
};