'.areaCodeList'をもう一度クリックしたときのみコンテンツをslideUp()する方法はありますか?jQuery slideUp()コンテンツをもう一度クリックしたとき
$(".areaCodeList").on('click', function() {
$(this).next('.churchList').slideDown();
($this.die());
$('.churchList').slideUp();
});
'.areaCodeList'をもう一度クリックしたときのみコンテンツをslideUp()する方法はありますか?jQuery slideUp()コンテンツをもう一度クリックしたとき
$(".areaCodeList").on('click', function() {
$(this).next('.churchList').slideDown();
($this.die());
$('.churchList').slideUp();
});
.churchListは(ダウン滑らせる)表示されているかどうかをチェックすることができます:
あなたが使用する必要があります$(".areaCodeList").on('click', function() {
if($(this).next('.churchList').is(':visible') === true){
$(this).next('.churchList').slideUp();
}else{
$(this).next('.churchList').slideDown();
}
});
はあなたではなく、クラスのコード
$(".areaCodeList").on('click', function() {
if (!$(this).is('.clicked')){
$(this).addClass('clicked');
return false;
}
$(this).next('.churchList').slideDown();
$(this).die();
$('.churchList').slideUp();
});
あなたはまた、属性($(el).attr('clicked')
)を使用して検討することを実行する前に、それは既にクリック示し、同様の方法で、後でそれを確認するために、いくつかのクラスを使用することができます。
更新: 質問のタイトルは本当に混乱であり、(質問に答える)私たちの唯一の多くは最初からそれを得ていないようです:
当初、私はこのようにそれを得た:
2回目にクリックすると要素が上に移動します。 私が提供したサンプルが正しい場合は、それが正しい場合です。
しかし、問題はより多くのこのようなものですように見えます:
スライドごとにでもクリックして、すべての奇数クリックでそれを上にスライド上の要素ダウン。
これは(epascarello's answerで説明したように)slideToggle
が解決することを事実である場合
匿名のダウン投票者が表示されます... –
複雑なことに、jQueryはすでにこれを行っています。 – epascarello
@epascarello、すでに何をしていますか? 2回目にクリックされたことを確認しますか?私は2番目のクリックのチェックを追加しましたが、コードの残りの部分はそのまま残っていますが、それは問題ではないという質問は何もないので、正しいと仮定しています。 –
$(".areaCodeList").on('click', function() {
$(this).next('.churchList').slideToggle();
});
これは2番目のクリックでどのように機能していますか? –
@Jucicy Scripter slideToggleは何ですか?上記のコードを使った例 – epascarello
の例:http://jsfiddle.net/rH7St/ – epascarello
ありがとうございました!あなたのコードスニペット '$( '。churchList')。slideDown();'を '$(this).next( '。churchList')。slideDown();'に置き換えれば完全に動作します。 @epascarello、私は過去にslideToggle()を試しましたが、うまくいかなかったようです。だから、どうやってそれをコーディングするの? –
@MichaelGrigsbyごめんなさい。コードを更新します – Sherzod