Javascript 调用变量jQuery函数
如何使用Javascript 调用变量jQuery函数,javascript,jquery,dynamic-function,Javascript,Jquery,Dynamic Function,如何使用window[]()调用变量javascriptfunctions 是否可以调用变量jQueryfunctions?如果是,怎么做 通常,我只需要一个三元来翻转一个可见的开关,将许多行代码涂抹成1将非常方便。例如,在一个$.aja()success中: if(msg.length > 0){ $("#gridViewContainer").slideDown() } else{ $("#gridViewContainer").slideUp() } 这可能是一个糟
window[]()
调用变量javascriptfunction
s
是否可以调用变量jQueryfunction
s?如果是,怎么做
通常,我只需要一个三元来翻转一个可见的开关,将许多行代码涂抹成1将非常方便。例如,在一个$.aja()
success
中:
if(msg.length > 0){
$("#gridViewContainer").slideDown()
}
else{
$("#gridViewContainer").slideUp()
}
这可能是一个糟糕的例子,因为布尔值
可能会传递给幻灯片()
或其他内容,但我想使用上面链接问题中的概念
这对我不起作用:
$("#gridViewContainer")[((msg.length > 0)?'slideDown':'slideUp')]()
jQuery函数仍然只是JavaScript函数,因此与任何其他JS函数一样适用于它们 您可以按如下方式调用对象的方法
objectVar
:
objVar.method();
objVar["method"]();
var methodName = "method";
objVar[methodName]();
您的问题提到使用window[]()
——这适用于全局函数,因为它们本质上是window
的属性(当然,如果在浏览器中运行JS)
因此,对于jQuery,您可以执行以下操作:
var methodName = "hide";
$(someSelector)[methodName]();
$(someSelector)[anyJSExpressionThatReturnsAStringThatIsAjQueryMethod]();
编辑:我刚看到问题的新版本。用?:
运算符显示的代码行选择方法名称应与if/else
具有相同的效果。我自己也使用过类似的代码,没有任何问题,而且它在中工作得很好。请注意,由于您的动机似乎是缩短代码,您可以省略[]
中表达式中的所有括号,只需执行以下操作:
$("#gridViewContainer")[msg.length > 0?'slideDown':'slideUp']();
…甚至省略>0
部分,因为msg.length
在非零时为真:
$("#gridViewContainer")[msg.length ?'slideDown':'slideUp']();
“调用变量jQuery函数”是什么意思?你能举个例子吗?jQuery函数是javascript函数,因为jQuery是javascript。当然,
x=“hide”$(选择器)[x]()
@Gracchus张贴一把小提琴来演示问题。@Gracchus以下是(大部分)您的示例: