jQuery 函数不适用于两个元素
我的 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>
谢谢!
My jQuery script don't return the number in ascending order.
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);
});
And my HTML:
<div id="a" style="background:blue;float:left;"></div>
<div id="b" style="background:red;float:left;"></div>
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您在
i = 0
和interval
之前缺少var
关键字。这会导致函数$.xpto
的所有实例共享这些变量。此外,每次调用$.xpto
时,i
变量都会重置为零。根据你的函数的逻辑,这应该发生:
如果这不符合预期,请提及你的愿望,我会看看它。
You're missing the
var
keyword beforei = 0
andinterval
. This causes all instances of function$.xpto
to share these variables. Furthermore, thei
variable resets to zero each time you call$.xpto
.According to your function's logic, this should happen:
If this is not as expected, mention your wishes, and I will have a look at it.
试试这个: - http://jsfiddle.net/FloydPink/hWYG5/
没有
var
关键字,变量 i 没有在闭包中显式声明,并且在对$.xpto
的调用中被重用Try this: - http://jsfiddle.net/FloydPink/hWYG5/
Without the
var
keyword, the variable i is not getting declared explicitly within the closure and is being reused within both the calls to$.xpto
如果您尝试为每一行赋予自己的计数变量,那么您必须在定义 i 之前使用 var 关键字。
http://jsfiddle.net/pF2ef/2/
If you are trying to give each row its own count variable then you must use the var keyword before defining i.
http://jsfiddle.net/pF2ef/2/