web-dev-qa-db-ja.com

jQueryの各コールバック

jQuery each 関数でコールバックを使用するにはどうすればよいですか?

私は次のようなことを試みています:

$.each(images, function(key, value) { 
    new_images+= '<li><a href="'+value+'"><img src="'+value+'" alt="'+[key]+'" /></a></li>';
}, function (){
    $('#Gallery').remove();
    $('body').append('<ul class="gallery">'+new_images+'</ul>');
});
15
NoNameZ

このコードの何が問題になっていますか? $.eachのコールバックは必要ありません。

$.each(images, function(key, value) { 
    new_images+= '<li><a href="'+value+'"><img src="'+value+'" alt="'+[key]+'" /></a></li>';
});

$('#Gallery').remove();
$('body').append('<ul class="gallery">'+new_images+'</ul>');
26
h2ooooooo

$.each();は同期関数です。つまり、$.each();$.each();の終了後に実行されるため、コードを記述する必要はありません。

44
Damian SIlvera

.each-callbackの解決策が手に入りました!

配列の各要素に対してajaxリクエストを実行する必要がありました。そこで、各要素のすべてのdiv要素を含むdivコンテナを作成しました。読み込みが行われるたびに、.removeの後で、div要素は緑と.slideUpに変わりました。そして、divコンテナーが空かどうかを尋ねるたびに。はいの場合、すべての要素は完全にロードされています(削除されているため)。

ここに私のコードの一部:

<script>
$(document).ready( function() {
    $.each(myChannels, function(index, value) {
        $("#tag_"+value).load('getxmls/ajaxrenewchannel/channel:'+value, function() {
            $("#tag_"+value).removeClass('alert-info').addClass('alert-success');
            $("#tag_"+value).slideUp('600', function () {
                $("#tag_"+value).remove();
                if( $('#loadcontainer').is(':empty') ) {
                    window.location = 'feeds/';
                }

                });

        });
    });
});
</script>

これが誰かに役立つことを願っています...

1
FishWave

これはどういう意味ですか?

$.each(images, function(key, value) { 
    new_images+= '<li><a href="'+value+'"><img src="'+value+'" alt="'+[key]+'" /></a></li>';
});
function myMethod(){
    $('#Gallery').remove();
    $('body').append('<ul class="gallery">'+new_images+'</ul>');
};
myMethod();
1
Arsen Mkrtchyan

意図したコールバックがわからない。これはあなたが探しているものだと思います

$('#Gallery').remove();
var selectItems='<ul class="gallery">';
$.each(images, function(key, value) { 
    selectItems+= '<li><a href="'+value+'">
                              <img src="'+value+'" alt="'+[key]+'" /></a></li>';    
});   
selectItems+= '</ul>';
$('body').append(selectItems);
0
Shyju