16

jQueryの各関数でコールバックを使用するには?

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

$.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>');
});
4

5 に答える 5

47

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

于 2012-09-04T13:27:19.433 に答える
28

このコードの何が問題になっていますか? のコールバックは必要ありません$.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>');
于 2012-09-04T13:24:09.510 に答える
1

.each-callback の解決策ができました!

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

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

<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>

これが誰かを助けることを願っています...

于 2012-12-28T21:41:44.043 に答える
1

これのことですか?

$.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();
于 2012-09-04T13:23:54.893 に答える
0

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

$('#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);
于 2012-09-04T13:25:19.510 に答える