Контактная форма 7 Пользовательское событие DOM использует пространство имен двоеточия $ (data.into) .trigger ('wpcf7: mailsent'). Как имя события DOM становится "wpcf7mailsent"? - PullRequest
0 голосов
/ 15 ноября 2018

МОЙ ВОПРОС

Если пользовательское событие jQuery имеет пространство имен с двоеточием, например 'wpcf7:mailsent' или 'wpcf7:submit', почему или как событие DOM NAME становится wpcf7mailsent или wpcf7submit?К ним как-то присоединяется какой-то процесс DOM?


БОЛЬШЕ КОНТЕКСТА

Контактная форма 7 Wordpress предоставляет несколько типов пользовательских событий DOM .Когда я смотрю на исходный код плагина, я пытаюсь понять, как эти имена создаются в DOM и откуда они берутся.

Список контактной формы 7 Пользовательские события DOM

  • wpcf7invalid - Срабатывает, когда отправка формы Ajax успешно завершена, но письмо не было отправлено из-за наличия полей с неверным вводом.
  • wpcf7spam - срабатывает, когда отправка формы Ajax успешно завершена, но письмо не было отправлено из-за возможной спам-активности.
  • wpcf7mailsent - срабатывает приОтправка формы Ajax успешно завершена, и письмо было отправлено.
  • wpcf7mailfailed - Срабатывает, когда отправка формы Ajax завершена успешно, но при отправке почты произошла ошибка.
  • wpcf7submit - Срабатывает, когда отправка формы Ajax успешно завершена, независимо от других инцидентов.

Источник: wp-plugins / contact-form-7 Github repo

Код, который обрабатывает данные формы (я думаю):

$.fn.wpcf7InitForm = function() {
        this.ajaxForm({
            beforeSubmit: function(arr, $form, options) {
                $form.wpcf7ClearResponseOutput();
                $form.find('[aria-invalid]').attr('aria-invalid', 'false');
                $form.find('img.ajax-loader').css({ visibility: 'visible' });
                return true;
            },
            beforeSerialize: function($form, options) {
                $form.find('[placeholder].placeheld').each(function(i, n) {
                    $(n).val('');
                });
                return true;
            },
            data: { '_wpcf7_is_ajax_call': 1 },
            dataType: 'json',
            success: $.wpcf7AjaxSuccess,
            error: function(xhr, status, error, $form) {
                var e = $('<div class="ajax-error"></div>').text(error.message);
                $form.after(e);
            }
        });

Я заметилчасть:

success: $.wpcf7AjaxSuccess,

Внутри части $.wpcf7AjaxSuccess = function(data, status, xhr, $form) {... ...} были следующие коды:

$(data.into).trigger('wpcf7:mailsent');
$(data.into).trigger('mailsent.wpcf7'); // deprecated

и

$(data.into).trigger('wpcf7:submit');
$(data.into).trigger('submit.wpcf7'); // deprecated
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...