2014-03-06 34 views
0

我很努力地觸發一個在對象中定義的函數,通過使用動態密鑰指向它。我的代碼看起來是這樣的:使用動態密鑰從對象觸發功能

$(function(){ 
    var events = { 
     Test : function(){ 
      console.log ('init'); 
     } 
    } 
    $('#trigger').click(function(){ 
     var e = $(this).data('event'); 
     events[e]; 
    }); 
}); 

所以基本上,有與屬性數據事件=「測試」(或別的東西)的一些元素#trigger,一旦它被點擊我檢查事件對象,如果有是爲該觸發器定義的一個函數並觸發它。但是,它不以這種方式工作。我可以控制檯記錄事件對象,但是函數沒有執行。我究竟做錯了什麼?

謝謝!

回答

1

調用函數()

$('#trigger').click(function(){ 
     var e = $(this).data('event'); 
     events[e](); 
     //  ^^this 
}); 

DEMO

+1

真棒,錯過了一個,謝謝! – carlo