3

水平メニューがあります。このメニューには子があり、これらの子にはサブ子があります。これらのメニューは json ファイルから取得しています。ここで、表示する子の矢印イメージを追加します。これらの子にはサブ子があります。この画像を追加するにはどうすればよいですか? 私のJavaScriptページは

$(function() {
for(var i = 0, j = data[0].menu.length; i<j; i++) {
    var root_menu = data[0].menu[i];
    if(root_menu.hasOwnProperty("MenuId")) {
        $("#menu").append('<li><a href="#" class="parent-menu">' + root_menu.MenuName + '</a>');
        if(root_menu.hasOwnProperty("Menus") && root_menu.Menus.length > 0) {
            $("#menu li").last().append("<ul class='child-list' id='menu_" + root_menu.MenuId + "'>");
            for(var n = 0, m = root_menu.Menus.length; n<m; n++) {
                var sub_menu = root_menu.Menus[n]; 
                if(sub_menu.hasOwnProperty("MenuId")) {
                    $("#menu_" + root_menu.MenuId).append("<li class='menu-child'><a href='#'>" + sub_menu.MenuName + "</a></li>");
                    if(sub_menu.hasOwnProperty("Menus") && sub_menu.Menus.length > 0){
                        $("#menu_" + root_menu.MenuId + " li").last().append("<ul class='subchild-list' id='menu_" + sub_menu.MenuId + "'>");
                        for(var oo = 0, pp = sub_menu.Menus.length; oo<pp; oo++){
                            var subsub_menu = sub_menu.Menus[oo];
                            $("#menu_" + sub_menu.MenuId).append('<li class="nav-subchild"><a href="#">' + subsub_menu.MenuName + '</a>');
                        }
                        $("#menu_" + root_menu.MenuId + " li").last().append("</ul>");
                    }
                }
            }

        }
 $("#menu").append("</ul></li>");

    }
}
});
4

4 に答える 4

4

単純にcssで実行します。特別なクラスの要素にはsub-menu、背景に矢印アイコンが表示されます。

編集: jsonからメニューを作成する場合、サブメニューがあるメニュー項目に特別なクラスを追加できます。これは、サブメニューがあることをすでに確認しているためです。

 ...   
   if(sub_menu.hasOwnProperty("Menus") && sub_menu.Menus.length > 0){
     $("#menu_" + root_menu.MenuId + " li").last().addClass('hassub');
 ...

次に、クラスを持つ要素のcssにアイコンを追加しますhassub。私はこれをあなたのフィドルに追加しました:http://jsfiddle.net/ucpcA/18/

編集: または、要素を追加するときとまったく同じ手順で文字列に文字を追加することもできますul (この手順はどのような方法でも実行できます)。roXonの回答へのコメントですでに書いたように、ここにも追加します。

 ...   
   if(sub_menu.hasOwnProperty("Menus") && sub_menu.Menus.length > 0){
     $("#menu_" + root_menu.MenuId + " li").last().append(" ▼ <ul class='subchild-list' id='menu_" + sub_menu.MenuId + "'>");
 ...

そして、追加のcssコードはありません=)

于 2013-02-28T10:41:23.773 に答える
2

あなたは次のようにすることができます: LIVE DEMO

$("#menu li:has(ul) > a").append('▼');
于 2013-02-28T10:39:17.880 に答える
1

どこに矢印が欲しいのかわかりませんが、次のようなことができます

 #nav > ul > li:hover {
 background: url(images/dropdown_arrow.png) no-repeat scroll 0 0 #FFFFFF;
 border-color: #ccc #ccc #FFFFFF;
 border-style: solid;
 border-width: 1px;
 padding-bottom: 0;
 border-radius:1px;
 }

ここでフィドルの更新を参照してください http://jsfiddle.net/ucpcA/15/

于 2013-02-28T10:41:11.060 に答える
1

画像があるかどうかをテストした後、コードに画像を追加できますsub-menu

anchor tagliクラスに矢印画像を追加することでmenu-child

あなたのコードのように:<a href="#">Masters <img src="arrow.png" align="right" width:10px /></a>

于 2013-02-28T10:46:17.637 に答える