jQuery вложенный .each () выходит за пределы функции - PullRequest
0 голосов
/ 29 мая 2011

Я использую приведенный ниже код для сохранения порядка нескольких сортируемых списков с помощью вызова Ajax, и по какой-то причине он запускает вызов несколько раз за клик.Я получаю от 4 до 8 предупреждений, если в div #resedit есть два списка.

Я не могу понять, почему вызов или предупреждение ajax делались бы более одного раза ... единственное, что происходит в функциях .each, - это создание переменной, и они полностью закрываются перед чем-либо ещепроисходит.

Кто-нибудь может увидеть, где я иду не так?

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 голосов
/ 29 мая 2011

Ваш Ajax-вызов находится внутри (внешнего) children().each() вызова. Так что он будет вызван один раз для каждого непосредственного потомка #resedit div.

И я думаю, что у #resedit div есть от 4 до 8 детей.

...