Как вызвать функцию только один раз и избежать сообщения об ошибке «Превышен максимальный размер стека вызовов»? - PullRequest
0 голосов
/ 17 января 2020

Я создаю сценарий для тестирования запуска лайтбокса для отображения / скрытия с помощью динамически размещаемой кнопки CTA в разделе заголовка для клиента. Ниже приведен сценарий и функция, которую я использую для запуска показа / скрытия.

jQuery("#hero_content").append(`
    <button id="get-quote"
            class="bluebg whitetext contact-trigger contact-button"
            role="button" title="Get a Quote"
            aria-label="Get a Quote opens a dialog"
            tabindex="14">Get a Quote</button>
`);

$("#get-quote").on("click touchstart", function (e){    
    triggerContact();
});

Сценарий вызывает открытие лайтбокса, однако для его запуска требуется более 16 секунд. получение

«Uncaught RangeError: Превышен максимальный размер стека вызовов» с 200+ кадрами, зарегистрированными под этой ошибкой.

Очевидно, что я что-то не так делаю.

Компонент лайтбокса используется в нескольких экземплярах на веб-сайте клиента и не понимает, почему triggerContact () вызывает эту ошибку при попытке использовать его для нового экземпляра, поскольку он уже существует под другой кнопкой в ​​главном меню. - HTML фрагмент ниже.

<div tabindex="-1" role="button" class="spacebutton contact-trigger contact-button"
     title="Request a Quote" aria-label="Request a Quote opens a dialog"
     data-cached-aria-disabled="" aria-disabled="true" data-cached-tabindex="0"
     data-inert-pointer-events="" data-ally-disabled="true"
     style="pointer-events: none;">Request a Quote</div>

Я пытаюсь вызвать контактную форму через триггерный контакт () ниже, чтобы показать / скрыть, так как использование только одного класса .contact-trigger не вызывало желаемого функциональность для новой добавленной кнопки.

function triggerContact() {
    $(".contact-trigger").click();
}

HTML для наложения лайтбокса и содержимого формы также пустые теги div до тех пор, пока не будет нажата кнопка .contact-trigger, и она будет жить в последних двух дочерних элементах тега body.

Будем весьма благодарны за любые советы и рекомендации! :)

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