如何在Javascript中传递要作为回调处理的字符串或函数名列表
做了一点谷歌搜索,但没有找到我想要的 为了减少应用程序所需的JAvascript行数,我尝试使用尽可能多的可重用函数 当然,问题是要尽可能使这些功能灵活 所以我有一个表单,它是通过使用jQuery的克隆函数动态扩展的。为了使其工作,需要运行一些附加函数,例如,在动态创建的元素上正确初始化日期选择器 这些要求因要克隆的表单而异 因此,我调用我的克隆函数如下:如何在Javascript中传递要作为回调处理的字符串或函数名列表,javascript,jquery,callback,Javascript,Jquery,Callback,做了一点谷歌搜索,但没有找到我想要的 为了减少应用程序所需的JAvascript行数,我尝试使用尽可能多的可重用函数 当然,问题是要尽可能使这些功能灵活 所以我有一个表单,它是通过使用jQuery的克隆函数动态扩展的。为了使其工作,需要运行一些附加函数,例如,在动态创建的元素上正确初始化日期选择器 这些要求因要克隆的表单而异 因此,我调用我的克隆函数如下: $('.button').click(function (){ var thisID = $(this).attr('id').re
$('.button').click(function (){
var thisID = $(this).attr('id').replace('add', '');
cloneDetails(thisID, initialiseDates);
});
cloneDetails函数如下所示:
function cloneDetails(cur_num, callBackFunctions) {
/// do loads of stuff ///
callBackFunctions();
});
在本例中,克隆函数将运行并执行它需要的操作,然后它将运行第二个函数调用initialiseDates
不过,我希望能够指定几个函数名,以便在克隆函数之后运行,并调用
cloneDetails(thisID, 'initialiseDates, doSomethingElse, doAnotherThing');
因此,说明在cloneDetails函数运行之后要运行的函数列表
我认为我没有正确设置回调方法,也不知道应该如何设置
非常感谢你的帮助
编辑:我不想将所有这些函数捆绑到一个函数中,关键是这些函数都应该可以单独和/或一起使用。我可以想出几种方法:
eval(name+'())
。请注意,eval()
可能是邪恶的、安全的参数[1..n]
(参数
是一个包含所有函数参数的自动变量)cloneDetails(thisID, function(){
initialiseDates();
doSomethingElse();
doAnotherThing();
});
cloneDetails(thisID, $.Callbacks()
.add(initialiseDates, doSomethingElse, doAnotherThing));
function cloneDetails(cur_num, callBackFunctions) {
/// do loads of stuff ///
callBackFunctions.fire();
});
您可以传递函数数组。[初始日期,doSomethingElse,…]是的,选项3正是我不确定该怎么做的!唯一的问题是,由于某种原因,我的initialiseDates函数实际上不会那样工作!也有人这样做,但日期这一点是非常普遍适用的,所以我刚刚将其包含在克隆函数中。谢谢