0

我需要有关settimeout功能的帮助。我做了一个小插件,根据特定参数附加“li”。

喜欢

div ({'div':'noo','auto':'true','pos':'top','txt':'hello'});

function div(obj) {
    obj.div;
    obj.auto;
    obj.pos;
    obj.txt;
    obj.time;
    if(obj.pos == 'top') {
        $('<ul id="top"></ul>').appendTo('body');
    }
    if(obj.pos == 'bottom') {
        $('<ul id="bottom"></ul>').appendTo('body');
        $(obj.div).append('<li data-name="' + $.now() + '">' + obj.txt + '</li>');
        if(!obj.time) {
            obj.time = 6000;
        }
        if(obj.auto == 'true') {
            setTimeout(function () {
                $(obj.div + ' li').fadeOut();
            }, obj.time);
        }
    }
}

现在,这段代码的问题是,如果我在几秒钟后附加一个 li ,那么setTimeout (function (){div ({'div':'bottom','auto':'true','pos':'bottom'});}, 3000);两个 LI 会同时淡出(obj.time)。

我想要的是,所有附加的 LI 必须obj.time在淡出之前完成它们各自的。

我还尝试在当前时间的所有附加 LI 上添加 attr“数据名称”,但不知道如何存储所有数据名称并将其检索到 setTimeout 函数中。

抱歉错字错误

4

1 回答 1

0

JavaScript 区分大小写,因此请避免首先使用 If 代替 if、Function 代替 function 和 SetTimeout 代替 setTimeout。

于 2013-11-11T11:06:46.543 回答