var foo1,foo2;
switch (fn)
{
case "fade" : foo1 = "fadeOut"; foo2 = "fadeIn"; break;
case "slide" : foo1 = "slideUp"; foo2 = "slideDown"; break;
}
eval("$('.cls1')." + foo1 + "();");
currentSlideIndex = currentSlideIndex + n;
eval("$('.cls1')." + foo2 + "();");
在不使用 eval 的情况下有更好的方法来实现这一目标吗?除非绝对必要,否则我不是非常喜欢使用 eval。
最佳答案
由于存储在 foo1
和 foo2
中的函数名称是 $('.cls1')
返回的对象的属性,因此以下应该有效:
$('.cls1')[foo1]();
与
foo2
相同。关于javascript - 根据包含函数名称的字符串调用函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2763213/