Внешний сценарий js не работает после вызова ajax - PullRequest
0 голосов
/ 11 июля 2020

На своей индексной странице я загружаю в специальный раздел c несколько полей с кнопками в них. Пример кнопки

<span data-glf-cuid="5cc06166-70f2-48d0-8dc2-f5961d14f50f" data-glf-ruid="d68ed79c-bf90-463c-acdc-dd4cea8c8964" > Order Now</span>

Используя внешний скрипт, который у меня есть на странице макета, он добавляет в диапазон id

 <script src="https://www.fbgcdn.com/embedder/js/ewm2.js" defer async></script>

Пример кнопки после загрузки страницы

<span data-glf-cuid="5cc06166-70f2-48d0-8dc2-f5961d14f50f" data-glf-ruid="d68ed79c-bf90-463c-acdc-dd4cea8c8964" id="glfButton3"> Order Now</span>

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

    function callToSearch(postcode) {       
        document.getElementById("test").style.display = "";
        var slides = document.getElementsByClassName("buttonCategory");
        var dataVal = "";
        for (var i = 0; i < slides.length; i++) {
            if (slides.item(i).className == "buttonCategory activebtn") {
                dataVal = slides.item(i).value;
            }
        }
        var sideBarVisibility = document.getElementById("scrollableSidebar").style.display;
        var maxwidth = $(window).width();
        if (maxwidth >= 600) {
            document.getElementById("scrollableSidebar").style.display = "";
            document.getElementById("sectionCategories").style.display = "NONE";
        }
        var offerButton = document.getElementById("sidebarOfferBtn").classList.value;
        var isofferparam = "False";
        if (offerButton == "activebtn") {
            isofferparam = "True";
        }
        $.ajax({
            url: "@Url.Action("Index", "Home")",
            data: { data: dataVal, postParam: postcode, isOfferparam: isofferparam},//'data=' + dataVal + 'postParam=' + postcode,
            type: "POST",
            success: function (data, status, xhr) {
                $('#tblSeeMore').html(data);
                var asf = xhr.getResponseHeader("nextItems");
                document.getElementById("nextItems").value = asf;
                $('html, body').animate({
                    scrollTop: $("#stopscroll").offset().top - 105 // the 105 is the sticky header
                }, 1000);
                  var showSeeMore = xhr.getResponseHeader("showSeeMore")
                if (showSeeMore == 'show') {
                    document.getElementById("seeMoreBtnsubmit").disabled = false;
                }
                else {
                    document.getElementById("seeMoreBtnsubmit").disabled = true;
                }
               
            },
                error: function (xhr, status, error) {
                    var err = eval("(" + xhr.responseText + ")");
                    alert(err.Message);
                }
        });
}

После этого вызова кнопки НЕ получают идентификатор. Как будто внешний скрипт с ними не работает. Не знаю, в чем проблема. Я попытался, среди прочего, снова загрузить указанный c скрипт, но безуспешно.

Есть идеи для реализации?

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