javascript - jQuery 函数不适用于两个元素

标签 javascript jquery setinterval

我的 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 = 0interval 之前缺少 var 关键字。这会导致函数 $.xpto 的所有实例共享这些变量。此外,每次调用 $.xpto 时,i 变量都会重置为零。

根据你的函数的逻辑,这应该发生:

a 1
b 2
a 3
a 4
a 5
b 6
a 7
a 8
b 9
...

如果这不符合预期,请提出您的愿望,我会查看。

关于javascript - jQuery 函数不适用于两个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7692981/

相关文章:

php - 如何为我的 php 应用程序使用 google place api

javascript - setInterval 和 setTimeout 速度变化

jquery - .remove() 不删除所有内容

ios - 在 Swift 中每 x 分钟做一些事情

javascript - ReactJS - 每 30 秒从父组件传递对象到子组件不起作用

javascript - XMLHttpRequest 在 Chrome 应用程序中不起作用

javascript - HTML 文档触发的第一个事件是什么?

php - 添加好友按钮/链接

javascript - 将 `div` 的宽度设置为 window.innerWidth 导致垂直 slider

javascript - 平行元件选择器