2012-03-09 86 views
2

我有一個JSON對象命名的數據,如低於調用函數,並將它傳遞一個JSON對象

enter image description here

而且我有一個函數名稱在一個字符串像下面

enter image description here

test是我想調用的函數的名稱,並將它傳遞給json對象數據。

這裏是測試功能:

test = function (data) { 
    alert('I am the test function'); 
} 

我已經嘗試:

eval(func(data)); 

它不工作。

有什麼想法?

謝謝。

+0

哪裏函數'test'定義? – pimvdb 2012-03-09 12:04:50

+0

好吧我更新了我的問題,添加了測試功能 – Bronzato 2012-03-09 12:06:40

+0

[沒有這樣的東西作爲JSON對象](http://benalman.com/news/2010/03/theres-no-such-thing-asa-a- JSON /)。 'data'是一個包含JSON的字符串,那麼你必須先解析它,或者它是一個JavaScript對象/數組。 – 2012-03-09 12:07:37

回答

0

雖然eval()是一個可能的解決方案,它是AWFUL。

相反,詢問window找到你想要的功能,並從那裏運行它:

function test() { 
    alert("test")  
} 

var func = $("#confirm-remove").data("success"); 
var data = {}; // Your object 
var fn = window[func]; 
if (typeof fn === 'function') { 
    fn(data); 
} 

Example fiddle

這是假設你的函數具有全局範圍。

+0

非常感謝我的朋友。 – Bronzato 2012-03-09 12:18:08

+0

沒問題,很樂意幫忙 – 2012-03-09 12:24:02

0

假設你的測試功能是在窗口範圍,使用此功能的成功:

success: function (data) { 
    var func = $('#confirm-remove').data('success'); 

    window[func](data);       
} 
相關問題