调用变量 jQuery 函数
call variable jQuery function
我已经展示了如何使用window[]()
调用变量javascript function
s。
是否可以调用变量 jQuery function
s? 如果是这样,如何?
通常,我只需要一个三元来翻转一个可见的开关,将许多行代码合并为 1 会非常方便。 例如,在$.aja()
success
内:
if(msg.length > 0){
$("#gridViewContainer").slideDown()
}
else{
$("#gridViewContainer").slideUp()
}
这可能是一个不好的例子,因为boolean
可能会传递给slide()
或其他东西,但我想在上面的链接问题中使用这个概念。
这对我不起作用:
$("#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
具有相同的效果。我自己使用了类似的代码,没有问题,它在 Jason P 提供的小提琴中运行良好。请注意,由于您在此处的动机似乎是使代码更短,因此您可以省略[]
表达式中的所有括号,然后这样做:
$("#gridViewContainer")[msg.length > 0?'slideDown':'slideUp']();
。甚至省略> 0
部分,因为当非零时msg.length
将是真实的:
$("#gridViewContainer")[msg.length ?'slideDown':'slideUp']();
相关文章:
- 执行ajax成功函数-jQUERY
- 函数jquery.html()不提供数据属性集值
- 将变量放入ajax函数JQuery
- 函数jquery的未定义返回
- 如何在嵌套函数jquery上保持变量的值不变
- 用我的函数jquery给出数据/参数
- Firefox在调用函数(jquery)时冻结
- 在传递节时触发一个函数 - jquery
- 循环执行数组函数jQuery
- 在函数中调用另一个函数JQuery
- 对象不是函数-Jquery/JavaScript
- TypeError:对象不是函数-jquery
- 获取函数jQuery设置的属性
- 从函数jquery获取更新的变量值
- 切换而不是悬停函数jQuery
- 函数jQuery.animation()运行了两次行,但不起作用
- 使用函数 jQuery 获取变量
- 自执行函数 jquery 与 JavaScript 的区别
- 从回调函数 -JQuery 获取返回值
- 一个接一个地执行函数 JQUERY