我的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>
谢谢!
答案 0 :(得分:2)
您在var
和i = 0
之前错过了interval
关键字。这会导致函数$.xpto
的所有实例共享这些变量。此外,每次调用i
时,$.xpto
变量都会重置为零。
根据你的功能逻辑,这应该发生:
a 1
b 2
a 3
a 4
a 5
b 6
a 7
a 8
b 9
...
如果这不符合预期,请提及您的意愿,我会看一下。
答案 1 :(得分:1)
试试这个: - 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
答案 2 :(得分:0)
如果您尝试为每一行提供自己的计数变量,那么在定义i之前必须使用var关键字。