[英]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.