我正在使用下面的代码通过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;
});
});
答案 0 :(得分:0)
您的Ajax调用位于(外部)children().each()
调用中。因此,对于#resedit
div的每个直接孩子,它都会被调用一次。
我猜#resedit
div有4到8个孩子。