3
function modalClosed(){
    $("div#tab" + tabId).find('ul')
                        .prepend("<li>item</li>")
                        .hide()
                        .fadeIn('slow');
}

<li>リスト ( ) を先頭に追加して、1 つずつフェードインさせたいのですが、残念ながら を使用する方法が$(this)ありません。上記のコードはうまく機能せず、すべての に効果が適用されます<li>

4

3 に答える 3

1

これは、追加された要素ではなく要素を.prepend()返すため、要素を非表示/表示しているためです。メソッドを使用してロジックを逆にすることができ、要素ではなく追加された要素に適用されます。ulliulprependTo().hide().fadeIn()ul

$("<li>item</li>").hide()
                  .prependTo("#tab"+tabId+" ul")
                  .fadeIn('slow');

http://jsfiddle.net/5yj7v/

于 2013-10-09T05:17:20.487 に答える
0

私が理解していることから、すべてのアイテムに1つずつフェードイン効果が必要です。それが正しい場合は、次のことを試してください。

var time=1000;
$("div#tab"+tabId+" ul").prepend("<li>item</li>");
$("div#tab"+tabId+" ul li").each(function() {
    $(this).hide();
    $(this).fadeIn(time);
    time+= 800;
});

http://jsfiddle.net/PV4dC/5/

于 2013-10-09T05:47:39.513 に答える
0
function modalClosed(num) {
     $("div#tab" + tabId).find('ul')
                        .prepend("<li>item</li>")
                        .hide()
                        .fadeIn('slow', function() {
                            // callback function, called when fadeIn has finished
                            if(num > 1) {
                                modalClosed(num - 1);
                            }
                        });
}
于 2013-10-09T05:16:08.860 に答える