我的问题
如果jQuery自定义事件使用'wpcf7:mailsent'
或'wpcf7:submit'
之类的冒号命名,那么DOM事件名称为何或如何变为wpcf7mailsent
或wpcf7submit
?他们通过某种DOM流程加入了吗?
更多上下文
Wordpress的联系表7提供了几种类型的custom DOM events。当我查看插件的源代码时,我试图了解这些名称是如何在DOM中创建的以及它们的来源。
联系表7自定义DOM事件列表
来源: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