如何使用var名称调用函数?

时间:2013-08-11 18:24:31

标签: javascript function variables var

我有一个div需要移动到一个特定的位置,具体取决于点击哪个下拉div。我为每个人做了一个功能。函数名称与dropdown divs id +“Arrow”对应。然后我创建了一个var,它获得了单击的下拉列表的id名称并添加了单词arrow,这样它就会匹配函数名称。当我尝试使用var调用函数时,它不起作用。

 var arrowName = $(this).attr('id') + "Arrow()";

    function btn1s1Arrow() {$( "#greenArrow" ).animate({top: "203px", left: "291px"}, "normal" );}
    function btn1s2Arrow() {$( "#greenArrow" ).animate({top: "345px", left: "381px"}, "normal" );}
    function btn1s3Arrow() {$( "#greenArrow" ).animate({top: "444px", left: "391px"}, "normal" );}

   //////dont mind this $("#qwrapper .accordionContent2").slideUp('normal'); 
   ////////dont mind this $(this).next().slideDown('normal');

    arrowName();

帮助将不胜感激。谢谢先进...我很困难

这是代码的一部分,所以我说的实际上是有意义的 http://jsfiddle.net/vrs9j/1/

2 个答案:

答案 0 :(得分:3)

没有必要,你可以这样做:

var arrowName = $(this).attr('id');

var animProps = {
    btn1s1: [203, 291],
    btn1s2: [345, 381],
    btn1s3: [444, 391]
};

var animProp = animProps[arrowName];
$("#greenArrow").animate({top: animProp[0], left: animProp[1]}, "normal");

答案 1 :(得分:1)

您可以执行以下操作:

window[arrowName]();