jQuery嵌套.each()越过函数

时间:2011-05-29 15:50:33

标签: javascript jquery nested each

我正在使用下面的代码通过Ajax调用保存多个可排序列表的顺序,并且由于某种原因,它每次点击多次运行调用。如果#resedit div中有两个列表,我会收到4到8个警报。

我无法理解为什么ajax调用或警报会被多次发生... .each函数中唯一发生的事情就是构建一个变量,并且在其他任何事情发生之前它们就完全关闭了。 / p>

谁能看到我出错的地方?

var listorder = '';
    $('#resedit').children().each(function(index) {
        if ($(this).css('display') != 'none' && $(this).attr('id') != '') {
        listorder = listorder + $(this).attr('id') + ', ';
                $(this).children().each(function(indexchildren) {
                    if ($(this).css('display') != 'none' && $(this).attr('id') != '') {
                        listorder = listorder + $(this).attr('id') + ', ';
                        placeholder = indexchildren;
                        }
                    });
        }
        });
    var data = {
        action : 'save_res',
        security : '<?php echo $saveres_nonce; ?>',
        resorder : listorder,
        resumeslug : $('#res-dash-select').val(),
        }
    jQuery.post(ajaxurl, data, function(response) {
        alert(response);
        return;
        });
    });

1 个答案:

答案 0 :(得分:0)

您的Ajax调用位于(外部)children().each()调用中。因此,对于#resedit div的每个直接孩子,它都会被调用一次。

我猜#resedit div有4到8个孩子。