javascript - отложить обработку нажатия кнопки до момента загрузки страницы - PullRequest
0 голосов
/ 21 февраля 2019

Я использую Magento и столкнулся с проблемами, когда нажатие на кнопку «Добавить в корзину» до полной загрузки страницы приводит к нестабильному поведению.

Я хотел бы отложить обработчик длянажмите кнопку, пока не загрузится страница.Я думал об изменении текста кнопки на «Добавление в корзину», чтобы пользователь знал, что его клик был зарегистрирован.

Каков наилучший способ отложить обработчик?

Я думаю,Я мог бы зарегистрировать переменную по щелчку, а затем проверить эту переменную с помощью функции $jQuery.ready(), но есть ли способ сделать все это в существующем обработчике.Добавление дополнительного блока кода может быть не так просто, учитывая, как блоки работают в Magento.

1 Ответ

0 голосов
/ 21 февраля 2019

есть ли способ сделать это в существующем обработчике [click event]

Когда вы сделаете вызов готового документа jquery, он запустится, когда документ будет готов - однако, если вы позвоните по этому после , документ будет готов, то обратный вызов будет выполнен немедленно.

Таким образом, вы можете изменить свой обработчик события на:

$(document).on("click", "#mybutton", function() {
    var btn = $(this);
    btn.text("loading...");
    $(function() {
        btn.text("processing...");
        // process button here, example:
        btn.closest("form").submit();
    });
});

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

Если вы нажмете кнопку после того, как документ будет готов, внутренний документ обработчика события кликаГотово будет работать сразу.

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