我喜欢能够做到这一点:
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)
答案 0 :(得分:19)
您可以使用:
var b = $(this).is(':checked')
$('.perspective-col')[b ? 'show' : 'hide']()
您可以通过将字符串传递到括号[]
来调用jQuery函数。只需在里面插入一个条件来决定你传递的字符串!
一般来说,
<any expression>.property
相当于:
<any expression>['property']
不同之处在于您可以使用计算属性名称的表达式替换括号中的文字'property'
。 jQuery方法只是其值恰好是函数的属性。
但我真的很讨厌这种做法。您也可以使用jQuery .toggle()
答案 1 :(得分:6)
jQuery有一个方法可以实现你想要的toggle()
:
$('.perspective-col').toggle(b);