JS - 运行带有变量名的jQuery函数

时间:2014-12-03 10:19:18

标签: javascript jquery function

我需要运行一个带有部分动态变量的函数。

要运行的功能:

$.element_gallery = function(state){}

正在调用它的代码:

var name = "gallery";
window["$.element_"+name]('refresh');

此方法似乎适用于传统的Javascript函数,但不适用于jQuery函数。有没有办法在不使用eval()而不更改函数名的情况下运行它?

2 个答案:

答案 0 :(得分:2)

window替换为$

$["element_" + name]("refresh")

答案 1 :(得分:1)

当你执行window["$.foo"]时,它正在窗口对象上寻找一个名为$.foo的属性。但是,如果您使用的是jQuery函数,它存储在$对象的jQuery(或window)属性中,因此您想要的函数的实际位置是窗口。$ [“foo” ]。将您的代码更改为:

var name = "gallery";
window.$["element_"+name]('refresh');

或者,由于您可以在不指定window.的情况下访问全局变量,只需:

var name = "gallery";
$[".element_"+name]('refresh');