1

想知道 Javascript 中是否有办法通过字符串调用函数/方法名称?

场景,编写一些在目标上运行效果的 jQuery。我想让这个效果动态(可由用户更改)。

我想,理想情况下我会寻找类似的东西jQuery('target').Effect('slideDown','slow');

或者任何可以产生相同结果的东西,而不必有一些霸道的 Switch 语句switch(vEffect){ case 'slideDown': jQuery().slideDown(); break; },在我看来,这似乎是多余的......

4

1 回答 1

6

您可以使用属性语法来引用方法:

jQuery('target')['slideDown']('slow');

或者,如果你有一个变量:

var methodName = 'slideDown';
jQuery('target')[methodName]('slow');

你也可以创建你自己的 jQuery 插件,调用effect它来获取你想要的参数,然后使用上述技术调用实际的方法。

jQuery.fn.effect = function(methodName, speed) {
    return this[methodName](speed);
}

然后你可以这样调用:

jQuery('target').effect('slideDown', 'slow);
于 2012-09-30T16:59:18.170 回答