2011-03-30 8 views
0

私は次のjQueryを持っている:PタグをクリックするとJqueryが高速になりますか?

$('.agendaNav').click(function(event){ 
    $(this).find('.rightArrow').attr('src', '/images/arrowdown.png'); 
    if($('.agendaDay').is(':hidden')){ 
     $('.agendaDay').show(); 
    } else { 
     $('.agendaDay').hide(); 
    } 
}); 

ここでは.agendaDayクラスの皮をされて起こるが、それはのは関係なく、私は要素をクリックしてどのくらいの速非常に早く、再び示されていない何を得るHTML

<p class="agendaNav"><img src="/images/arrowright.png" class="rightArrow" /> WEEK AT A GLANCE</p> 

です。

なぜ機能しないのでしょうか?たぶん私はそれをタグにしなければなりませんか?

+0

これはまったく分かりません。あなたのJSでは、決して 'agendaDay'要素を今までには表示していません。隠すだけです。クラス 'agendaDay'を持つ要素はどこですか? [JSFiddle](http://jsfiddle.net)やJSbinなどの実例を投稿できますか? –

+1

あなたの例を '.agendaDay'を含むコードで黙想してください。同じことをするif/elseを使用することも意味しますか? –

答えて

4

ifelseの両方で同じコードを実行しています。サイズのためにこれを試着:

$('.agendaNav').click(function(event){ 
    $(this).find('.rightArrow').attr('src', '/images/arrowdown.png'); 
    if($('.agendaDay').is(':hidden')){ 
     $('.agendaDay').show(); // <------------- change this line 
    } else { 
     $('.agendaDay').hide(); 
    } 
}); 

また、there's a jQuery function for that

$('.agendaNav').click(function(event){ 
    $(this).find('.rightArrow').attr('src', '/images/arrowdown.png'); 
    $('.agendaDay').toggle(); 
}); 

明確に意図:チェック。より簡潔に:チェックしてください。より効率的です:チェックしてください。プログラマーエラーの少ない領域:チェック

+0

ああ、それは私がそれを持っていた方法です私はトグルを試みたが、それはまだ同じ問題を抱えています:http://icuc2011.com/agenda "Week At a Glance"をクリックしてください – Jordash

+0

私は$(this) ()と$(this).next( '。agendaDay')とそれを選択していないようです。 – Jordash

+0

あなたはそうです。私はあなたがトグルしたいそれぞれの '.agendaNav'の後に' .agendaDay'があると思いました。私の答えで提案した元のコードは、私のためにうまく動作します。 http://jsfiddle.net/mattball/X3KeP/ –

関連する問題