Mootools Request.JSON动态回调

Mootools Request.JSON dynamic callback

本文关键字:回调 动态 JSON Request Mootools      更新时间:2023-09-26

开发一个应用程序,所有表格数据都作为对象返回。

某些单元格将具有onclick事件。

JSON对象恢复得很好,并且对象调用"cb"中有一个键。

这是由服务器上的逻辑设置的。

我的问题是对象键cb将包含一个字符串,我如何在不使用eval()的情况下将其作为有效函数运行

示例:

var archive = function() {
    console.log('archiving');   
}
new Request.JSON ({
    ...
    onSuccess: function(r){
        //r.cb: 'archive'
        docuemnt.id(td).addEvent('click', r.cb);
    }
    ...
});

docuemnt.id(td).addEvent('click',eval(r.cb));//正在寻找替代

我知道我想得太多了,应该没那么难。今天一定还没喝够咖啡。

使用方括号表示法。如果您的函数在全局范围内,请使用window[r.cb]:

new Request.JSON ({ 
    ... 
    onSuccess: function(r) { 
        //r.cb: 'archive' 
        document.id(td).addEvent('click', window[r.cb]);
    } 
    ... 
}); 

如果您的函数不在全局范围内,请将您的函数移动到一个对象中:

var callbacks = {
    archive: function () { ... },
    foo: function () { ... },
    ...
}

然后使用callbacks[r.cb]