関数を実行する前に$(this)とクラスセレクタを使用できるかどうか疑問に思っています。
そうするのではなく、
$(this).toggleClass('open');
$('.closed').toggleClass('open');
$(".closed").add(this).toggleClass("open");
それが追加されます:実際に、上記の 'この' '.closed'
よろしく、
関数を実行する前に$(this)とクラスセレクタを使用できるかどうか疑問に思っています。
そうするのではなく、
$(this).toggleClass('open');
$('.closed').toggleClass('open');
$(".closed").add(this).toggleClass("open");
それが追加されます:実際に、上記の 'この' '.closed'
よろしく、
の文脈の中であなたがadd()
を使用することができますを選択します一方
$(this, '.closed').toggleClass('open');
this
の要素を一致する要素のセット(つまり.closed
)に置き換えます。
優れた答え、+1 :)また、要素にidがある場合は、このようなことができます。 (私はあなたのアプローチを知る前にこれをしていたでしょう) '$( '#' + this.id + '、.closed')toggleClass( 'open');' – Jashwant
私はJashwantのソリューションを通常使っていましたが、それはかなり醜い見つける。 VisioNの..私はそれが好きです!これらの2つのソリューションのどちらが速いのか、 – Joel
@Joeel彼らはほとんど同じ速度で動くべきです。しかし、[add()]ソリューションは、複数のセレクタよりわずかに(4%)遅い[jsperf shows](http://jsperf.com/add-vs-multiselector)です。つまり、 'add()'を使うことは、 'this'をjQuery要素のセットに追加する唯一の方法です。 – VisioN
私の(削除された)回答、間違った質問を無視してください。 – SpaceBison