0

機能に関して助けが必要settimeoutです。specifix パラメータに基づいて「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 "data-name" を現在の時刻で追加しようとしましたが、すべての data-name を保存してから setTimeout 関数に取得する方法がわかりません。

誤字脱字すいません

4

1 に答える 1

0

JavaScript では大文字と小文字が区別されるため、最初に if の代わりに If を使用したり、function の代わりに Function を使用したり、setTimeout の代わりに SetTimeout を使用したりしないでください。

于 2013-11-11T11:06:46.543 に答える