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ş:
Neden Eclipse 4.2 çalışan ve Java Deği...
Çalışan JavaScript ünite Sürekli bir E...
Çalışan aynı JUnit test durumda farklı...
İk bir elemanın rengini değiştirme...
iphone ayrı bir iş parçacığı çalışan i...