[英]jQuery Function don't work with two elements
我的jQuery腳本沒有按升序返回數字。
jQuery的
$(document).ready(function() {
$.xpto = function(dom, speed) {
i = 0;
interval = setInterval(function() {
i++;
$(dom).append(i + '<br>');
}, speed);
};
$.xpto('#a', 1000);
$.xpto('#b', 2000);
});
而我的HTML:
<div id="a" style="background:blue;float:left;"></div>
<div id="b" style="background:red;float:left;"></div>
謝謝!
在i = 0
和interval
之前,您缺少var
關鍵字。 這會使函數$.xpto
所有實例共享這些變量。 此外,每次調用$.xpto
時, i
變量都會重置為零。
根據您函數的邏輯,這應該發生:
a 1
b 2
a 3
a 4
a 5
b 6
a 7
a 8
b 9
...
如果這與預期不符,請提及您的意願,我將進行介紹。
試試這個: -http : //jsfiddle.net/FloydPink/hWYG5/
$(document).ready(function() {
$.xpto = function(dom, speed) {
var i = 0;
interval = setInterval(function() {
i++;
$(dom).append(i + '<br>');
}, speed);
};
$.xpto('#a', 1000);
$.xpto('#b', 2000);
});
如果沒有var
關鍵字,變量i不會在閉包中顯式聲明,而是在$.xpto
兩次調用中都被重用
如果要為每一行分配自己的計數變量,則必須在定義i之前使用var關鍵字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.