#jquery #jquery-events
#jquery #jquery-события
Вопрос:
Я загружаю некоторые скрипты динамически следующим образом:
//fileA.js
$('body').on('LoginWidget', function() {
$.cachedScript('/js/min/AddressWidgets.min.js').done(function() {
extend(AddressBookWidget, ShippingAddressWidget);
console.log("throwing event")
$('body').trigger('ShippingAddressWidget loaded');
});
});
и затем:
//fileB.js
$(document).ready(
function() {
console.log("catching event")
$('body').on('ShippingAddressWidget loaded', function() {
// do stuff
});
...
В консоли я вижу:
catching event
throwing event
Но перехватчик событий не запускается. jquery 2.1.2
Ответ №1:
Имена событий не могут содержать пробелов.
Вы должны либо использовать имя события, например
$('body').on('ShippingAddressWidgetLoaded', function() {...
или пространство имен события
$('body').on('ShippingAddressWidget.loaded', function() {...
Комментарии:
1. Вы правы, и отличный пример jsFiddle тоже. Однако я нигде не смог найти задокументированный допустимый набор символов имени события.