javascript - 无法调用 setInterval 两次

标签 javascript jquery html setinterval

当调用父元素的setInterval时,子元素的setInterval停止工作。这就是我调用 setInterval 的方式

$.fn.__blink = function(color) {
    self = $(this);
    if (self.attr('data-blinker') == undefined) {
        var blinker = setInterval(function() {
            original_color = self.css('background');
            self.css('background', color).delay(300).queue(function(nxt) {
                self.css('background', original_color);
                nxt();
            });
        }, 1000);
        self.attr('data-blinker', blinker);
    }
    return self;
};

元素位于导航菜单中,其中子元素是菜单项的子菜单

最佳答案

我看到的问题是您已创建 self abd original_color 作为全局变量,因此当您第二次调用 __blink 时,该值original_color 可能会被第二次调用覆盖

$.fn.__blink = function (color) {
    var self = $(this);
    if (self.attr('data-blinker') == undefined) {
        var blinker = setInterval(function () {
            var original_color = self.css('background');
            self.css('background', color).delay(300).queue(function (nxt) {
                self.css('background', original_color);
                nxt();
            });
        }, 1000);
        self.attr('data-blinker', blinker);
    }
    return self;
};

关于javascript - 无法调用 setInterval 两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31019689/

相关文章:

javascript - 在表单元素内打印 html 页面

jquery - 向所有表单元素添加只读属性

php - 从具有公共(public)变量的多个表中选择不同的列

javascript - 为什么我要在脚本标签上放置一个 ID?

javascript - 子行数据表 - 行数据值未定义

html - 奇怪的 float 错误

javascript - Ember 需要模型中一个 Promise 的数据用于 model() 中的另一查询

javascript - 检查两个特定字符是否在一起

javascript - imacros javascript 函数循环不工作

javascript - jQuery 父元素内部 HTML