2

我使用这段代码制作了一个 CSS3 ajax 加载器。id 是 ajaxloader 的位置。这段代码工作正常,加载器功能正常,但是如果函数被调用两次,超时将相互抵消,因为超时被分配给一个变量。不知何故,我想确保这永远不会发生。这是我正在使用的 javascript

function ajaxloader(id) {
    var i = $("#" + id + " .ajaxpieces").length;
    var s = $("#" + id + " .ajaxpieces").filter(function() {
        return ($(this).css('background-color') == "rgb(0, 128, 0)");
    }).next();

    if (s.length < 1) {
        s = $("#" + id + " .ajaxpieces").first();
    }
    s.css('backgroundColor','green').siblings().css('backgroundColor','grey');
    ajax_ii = setTimeout(function(){ajaxloader(id);},550);
}

function killloader() {
    clearTimeout(ajax_ii);
}
4

1 回答 1

5

由于每个变量都是窗口的对象,你可以这样做:

            window['a_time'+new Date().getTime()] = setTimeout(function(){
                ajaxloader(id);
            },550);
于 2013-10-28T14:04:55.083 回答