, SetTimeout çalışmıyor JQuery
Hala yeni bir WordPress kullanmak için geldim, ajax verdiğim örnek işe gidip gelmek için yolda setTimeout ile durduruldu aldım. Aşağı eklemek gereken yerde kırık var "." div her saniye.
İlgili kod iki dosya.
index.html
<html><head>
<script type='text/javascript' src='jquery.js'></script>
<script type='text/javascript' src='myCode.js'></script>
</head>
<body>
<div id='board'>Text</div>
</body>
</html>
vemyCode.js
(function(){
$(document).ready(function() {update();});
function update() {
$("#board").append(".");
setTimeout('update()', 1000); }
})();
dosya çalışıyor Tamam ve "() güncelleme" aracılığıyla ilk kez ama bir daha asla çalışır.mycode.js Senin yardım takdir, bu konuda duvara kafamı vurmaya başladım
CEVAP
Sorunlar burada bir çift var.
Öncelikle, anonymous function içinde kod tanımlama. Bu yapı:
(function() {
...
)();
iki şey yapar. İsimsiz bir fonksiyon tanımlar ve onu çağırır. Bunu yapmak için kapsamı nedeni vardır ama aslında istediğinin bu olduğundan emin değilim.
setTimeout()
kod bloğunda geçen sensin. Sorun update()
böyle çalıştırıldığında kapsamında değildir. Eğer bu işleri yerine çok işlevi bir işaretçi geçirmek: bunu ancak
(function() {
$(document).ready(function() {update();});
function update() {
$("#board").append(".");
setTimeout(update, 1000); }
}
)();
bu işlev işaretçisi çünkü update
Bu blok kapsamında yer almaktadır.
Ama dediğim gibi, bu gibi yazabilirsiniz adsız işlevi için ihtiyaç vardır
$(document).ready(function() {update();});
function update() {
$("#board").append(".");
setTimeout(update, 1000); }
}
ya
$(document).ready(function() {update();});
function update() {
$("#board").append(".");
setTimeout('update()', 1000); }
}
ve her ikisi de bu iş. İkinci kod bloğu içinde update()
kapsamında şu an için çalışır.
Ben de $(function() { ... }
kısaltılmış blok şeklinde tercih ve update()
içinde setTimeout()
arama yerine setInterval()
yerine kullanabilirsiniz:
$(function() {
setInterval(update, 1000);
});
function update() {
$("#board").append(".");
}
O kadar temizler umuyoruz.
Odak jQuery Safari çalışmıyor kullanar...
JQuery'çalışmıyor Datepicker bugü...
(belge)$.() 'I doğru bir şekilde iPhon...
's svg elemanı ile çalışmıyor ekl...
Fancybox'jQuery v1 ile çalışmıyor...