2012-08-05 34 views
0

我需要在JavaScript NameSpace中創建自定義事件,但我不知道它是否可能。在命名空間中創建自定義事件

我有這樣一個命名空間:

NAMESPACE = { 

    var1 : 'value', 
    var2 : 'value', 

    initiate : function() { 
     console.log('initiate'); 
    }, 

    clear : function(arg) { 
     console.log('clear'); 
    } 

    fail : function() { 
     // Here i need to trigger the error event.. 
    } 

} 

這就產生了用此方法事件:

var myEvent = new CustomEvent("errorX", { 
    data: { 
    param: "value" 
    } 
}); 

document.dispatchEvent(myEvent); 

// In document.ready... 
$(document).on('errorX', function(e) { 
    console.log(e); 
}); 

這工作,但我需要的addEventlistener連接到document,我想附加到命名空間對象,如:

$(NAMESPACE).on('errorX', function(e) { 
    console.log(e); 
}); 

這可能嗎?

回答

1

可以使用.triggerHandler方法:

$(NAMESPACE).on('errorX', function(e) { 
    console.log(e); 
}); 

$(NAMESPACE).triggerHandler("errorX"); 

演示:http://jsfiddle.net/Enq9h/

+0

@Zenth你不需要'.dispatchEvent'可言,jQuery的不使用它。它使用'.triggerHandler' /'.trigger' – Esailija 2012-08-05 12:41:28

+0

我更新你的例子試圖使我的代碼類似,但沒有得到事件params ..可能的原因? – Zenth 2012-08-05 13:12:26

+0

@十三你在哪裏更新你的例子? – Esailija 2012-08-05 13:17:35