2016-10-01 15 views
0

我加載一些腳本動態如下:沒有發射/ 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() {... 

FIDDLE

+0

你是正確的,偉大的jsfiddle例子了。但是,我無法在任何地方找到事件名稱有效的字符集。 –