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(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 回答
1

我现在有一个 .each-callback 的解决方案!

我必须为数组中的每个元素执行 ajax 请求。所以我制作了一个 div 容器,其中包含每个元素的所有 div 元素。每次加载时,div 元素在 .remove 之后变为绿色和 .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>

希望这可以帮助那里的人...

于 2012-12-28T21:41:44.043 回答
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 回答