SORU
14 AĞUSTOS 2009, Cuma


O'çalışan lar ise Setınterval aralığı değiştirme

Setınterval bir dize yinelemeleri belirli sayıda her biri onuncu değiştirmek için kullanılan bir javascript fonksiyonu yazdım.

function timer() {
    var section = document.getElementById('txt').value;
    var len = section.length;
    var rands = new Array();

    for (i=0; i<len; i  ) {
        rands.push(Math.floor(Math.random()*len));
    };

    var counter = 0
    var interval = setInterval(function() {
        var letters = section.split('');
        for (j=0; j < len; j  ) {
            if (counter < rands[j]) {
                letters[j] = Math.floor(Math.random()*9);
            };
        };
        document.getElementById('txt').value = letters.join('');
        counter  

        if (counter > rands.max()) {
            clearInterval(interval);
        }
    }, 100);
};

Belirli bir sayı aralığı ayarlamak yerine, her zaman çalışır güncellemek için, bir sayaç dayalı isterim. Yani: yerine

var interval = setInterval(function() { ... }, 100);

Gibi bir şey olurdu:

var interval = setInterval(function() { ... }, 10*counter);

Ne yazık ki, işe yaramadı. "10*sayacı" 0 eşittir. gibiydi

Nasıl oluyor da her zaman anonim işlevini çalıştırır aralığı ayarlayabilir miyim?

CEVAP
16 EYLÜL 2011, Cuma


İsimsiz bir işlev kullanabilirsiniz:

var counter = 10;
var myFunction = function(){
    clearInterval(interval);
    counter *= 10;
    interval = setInterval(myFunction, counter);
}
var interval = setInterval(myFunction, counter);

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bcbauer

    bcbauer

    7 ŞUBAT 2007
  • bmarian22

    bmarian22

    22 Aralık 2007
  • Lupe Fiasco

    Lupe Fiasco

    23 ŞUBAT 2006