我希望能够做到这一点:
var b = $(this).is(':checked')
$('.perspective-col'). (b) ? show() : hide()
代替
var b = $(this).is(':checked')
if(b) {
$('.perspective-col').show()
} else {
$('.perspective-col').hide()
}
我是不是想太多了?还是有一些我还没有找到的很棒的 javascript 语法?或者我认为到目前为止 JQuery 中不存在这样的东西是对的吗? (我使用的是 JQuery 1.9.0)
最佳答案
你可以使用这个:
var b = $(this).is(':checked')
$('.perspective-col')[b ? 'show' : 'hide']()
您可以通过将字符串传递到方括号[]
来调用jQuery 函数。只需在里面插入一个条件来决定你传递哪个字符串!
一般来说,
<any expression>.property
相当于:
<any expression>['property']
不同之处在于,您可以将括号中的文字 'property'
替换为计算属性名称的表达式。 jQuery 方法只是其值恰好是函数的属性。
但我其实很讨厌这种做法。您也可以使用 jQuery .toggle()
关于用于方法调用的 Javascript 三元运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17417206/