0

私はあなたがここで一時的に見つけることができるウェブサイトに取り組んでいます. 展開可能な要素のいずれかをクリックすると完全に機能することに気付くでしょうが、「すべて折りたたむ」ボタンを押すと、賛成票と反対票の画像を保持している div 要素がすべてのリスト項目から消え、何をすべきかわかりません。 mは間違っています(私はjQuery n00bです!)、jsコードは次のとおりです。

/* Full list expansion functionality */
$('#expandList')
.unbind('click')
.click( function() {
    $('.collapsed').addClass('expanded');
    $('.collapsed').children().show('medium');
})
/* Full list collapse functionality */
$('#collapseList')
.unbind('click')
.click( function() {
    $('.collapsed').removeClass('expanded');
    $('.collapsed').children().hide('medium');
})
4

2 に答える 2

3

.children()セレクターがないと、投票のあるsを含むすべての子が選択されます。<div>

単一アイテムのトグルスクリプトでは、を使用しています

$(this).children('ul').toggle('medium');
于 2013-03-10T16:17:18.723 に答える
1
$('.collapsed').children().hide('medium');

このコード行は、この要素内のすべての子を見つけて非表示にするため、div が含まれます

HTMLを見てください

<ul id="expList">
 <li class="collapsed expanded">
       <div id="upvoted" style="display: inline-block;"><a href="#"><img src="img/votes/upvote.png" alt="upvote" width="14" height="14"></a></div>
      <div id="downvoted" style="display: inline-block;"><a href="#"><img src="img/votes/downvote.png" alt="downvote" width="14" height="14"></a></div> | SNOW KAYAKING
  //You want to hide only this                      
  <ul style="display: block;">

  </ul>
</li>

コードを見てください

 /* Full list collapsion functionality */
    $('#collapseList')
    .unbind('click')
    .click( function() {
        $('.collapsed').removeClass('expanded');
        $('.collapsed').children().hide('medium');
    })

UL要素のみを選択して非表示にするようにコードを変更できます。

$('.collapsed ul').hide('medium');

また

$('.collapsed').children().not("#upvoted,#downvoted").hide('medium');
于 2013-03-10T16:27:30.413 に答える