2016-03-21 10 views
1

私は管理領域に水平メニューを持っています。 8つ以上の項目がある場合は、「More」項目を追加します。クリックすると、表示されている余分なメニュー項目を含むdivがスライドされます。jQuery余分なメニュー項目を部門に追加

分で、余分なメニュー項目をdivに追加しようとしています。私は私のadinエリアにdivを追加しました。それはID more_menuを持っています。ここではjQueryのは、私がこれまで持っていますが、現在はそれが動作しないです。

$('ul#adminmenu:has(li.menu-top:gt(8))').each(function() { 
      $(this).append('<li id="more" class="menu-top menu-top-first menu-top-last"><a class="open_more_menu" href="#"><div class="wp-menu-name">More</div></a></li>'); 
      var lis = $(this).find('li.menu-top:gt(8)').not('#more'); 
      $(this).find('#more_menu ul').append(lis); 
    }); 

これが成功したメニューに多くの項目が追加されますが、すでにそこにあるどのように多くのメニュー項目無視します。また、#more_menu divに余分なメニュー項目を追加しません。

+1

Questionに 'html'を含めることができますか?セレクタに ':has()'の目的は何ですか?作成し、重複した '#more'' 'id''を' .each() 'の中で文書化するために追加しますか? – guest271314

答えて

1

どうしたらいいですか?

HTML

<ol id="menu"> 
    <li>Lorem ipsum.</li> 
    <li>At, consequatur.</li> 
    <li>Ut, ipsam.</li> 
    <li>Ullam, nulla.</li> 
    <li>Similique, dolore!</li> 
    <li>Dolores, quibusdam.</li> 
    <li>Ea, impedit!</li> 
    <li>Quibusdam, delectus.</li> 
    <li>Consequatur, tempore?</li> 
    <li>Lorem ipsum.</li> 
    <li>At, consequatur.</li> 
    <li>Ut, ipsam.</li> 
    <li>Ullam, nulla.</li> 
    <li>Similique, dolore!</li> 
    <li>Dolores, quibusdam.</li> 
    <li>Ea, impedit!</li> 
    <li>Quibusdam, delectus.</li> 
    <li>A Consequatur, tempore?</li> 
</ol> 
<ul id="more_menu"> 

</ul> 

CSS

#more_menu { 
    display: none; 
} 

JS

$(document).ready(function(){ 
    var count = $('#menu').children().length; 
    var limit = 8; 
    if (count > 8) { 
    for (var i = 1; i <= count - limit; i++) { 
     $('#more_menu').append($('#menu').children().eq(limit)); 
    } 
    $('#menu').append('<li><a href="" class="more">Show more</a></li>'); 
    } 

    $('#menu').on('click', '.more', function(e){ 
    e.preventDefault(); 
    $('#more_menu').toggle(); 
    }); 

}); 

https://jsfiddle.net/oa4zLrvp/2/

あなたは、D toggleClassため#more_menuのためのトグルを切り替えることができますメニューをスライドさせるために使用しているCSSアニメーションを作成する

+0

偉大な答えは、治療を働く - ありがとう –

+0

助けて嬉しい!この回答があなたの問題を解決した場合は、それを受け入れたものとしてマークしてください。ありがとう! – Fhtagn

関連する問題