Как получить доступ к селектору в AJAX Complete? - PullRequest
0 голосов
/ 27 ноября 2018

Я делаю Ajax-запрос, который добавляет контент на страницу с помощью HTML из бэкэнда, а затем я делаю еще один Ajax-запрос, который изменяет этот динамически добавляемый HTML.

    $("#list-customers-button").click(function () {
        var selectedAcquirer = $("#acquirer-select").val();
        if (selectedAcquirer === "adyen") {
            if (listed) {
                listed = false;
                $("#customer-list-area").hide().html('').fadeIn(fadeTime);
            } else {
                listed = true;
                $.ajax({
                    type: "GET",
                    url: "/adyen_list_customers",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    beforeSend: function () {
                        $("#list-progress").show();
                    },
                    success: function (data) {
                        console.log(JSON.stringify(data));
                        $("#customer-list-area").hide().html(data["response_html"]).fadeIn(fadeTime).promise().done(function () {
                            $(".collapsible").collapsible();
                            resetDatepicker();

                        });

                    },
                    complete: function () {
                        $(document).on("change", "#file-download-datepicker", function () {
                            $("#file-download-progress").hide();
                            $("#file-download-date").val(selectedDate);
                            fileDownloadData = $("#file-download-form").serialize();
                            displayMessage(fileDownloadData);
                            $.ajax({
                                type: "POST",
                                url: "/adyen_update_file_list_by_date",
                                data: fileDownloadData,
                                beforeSend: function () {
                                    $("#file-download-progress").show();
                                },
                                success: function (response) {

                                },
                                complete: function (response) {
                                    $("#file-download-progress").hide();
                                    console.log(response.responseText);
                                    // Doesn't work. Selector should exist, but it doesn't.
                                    $("#merchant-file-list").html(response.responseText); 
                                },
                                error: function (response) {
                                    displayMessage(response["responseText"]);
                                }
                            });
                        });
                    },
                    error: function (data) {
                        displayMessage(data);
                    },
                });
            }
        } else if (selectedAcquirer === "stone") {
            displayMessage("Adquirente indisponível no momento.");
        } else {
            displayMessage("É necessário selecionar uma adquirente.");
        }
    });

Я получаю идеальный ответ HTML с сервера, но селекторы, которые ранее были добавлены с HTML, также с сервера (# file-download-progress, # merchant-file-list) полностью игнорируются..html () не работает, и ничего, и я не знаю, как использовать .on (), чтобы обойти это, потому что мне просто нужно получить доступ к этому контенту.Поскольку запрос ajax выполняется после завершения предыдущего, к ним должен быть доступ .Они просто не существуют нигде во времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...