4

私はこれを行うことができるようにしたいと思います:

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を使用しています)

4

2 に答える 2

21

これを使用できます:

var b = $(this).is(':checked')
$('.perspective-col')[b ? 'show' : 'hide']()

ブラケットに文字列を渡すことで、jQuery 関数を呼び出すことができます[]。内部に条件を挿入して、渡す文字列を決定するだけです。

一般に、

<any expression>.property

次と同等です。

<any expression>['property']

'property'違いは、括弧内のリテラルを、プロパティ名を計算する式に置き換えることができることです。jQuery メソッドは、その値がたまたま関数であるプロパティです。

しかし、私は実際にその練習が嫌いです。jQuery .toggle()を使用することもできます

于 2013-07-02T04:05:16.413 に答える
6

jQueryには、呼び出したいことを行うメソッドがありますtoggle()

$('.perspective-col').toggle(b);
于 2013-07-02T04:06:22.277 に答える