0

我遇到了一个案例,我正在使用 @UI.Menu 帮助程序并使用默认应用的 css 类自定义外观,我认为可能不应该添加一个类。

如果“有孩子”课程已开启,那么我将使用以下内容添加一个 + 号:

.sub-menu > li.has-child:before {
    content: "+";
}

当页面下方的唯一页面被隐藏时,就像我的客户一样,仍然添加 +,因为仍然添加了 'has-child' 类。

查看 UIHelper.cs 的源代码,我认为以下代码更改将在 RenderLI 方法中修复它:

// NEW
var hasChild = page.Pages.Where(p => p.IsHidden == false).ToList().Count > 0 ? " has-child" : "";                    
// Original
//var hasChild = page.Pages.Count > 0 ? " has-child" : "" ;

str.AppendLine("<li" + (curr.Id == page.Id ? " class=\"active" + hasChild + "\"" : 
                        (ChildActive(page, curr.Id) ? " class=\"active-child" + hasChild + "\"" :
                        (page.Pages.Count > 0 ? " class=\"has-child\"" : ""))) + ">") ;

我还没有机会更新源代码并进行测试,但我认为这可以解决问题。

与此同时,我在 js 中解决了这个问题

$("li.has-child").each(function (i, e) {
        if ($(this).find("ul").length == 0) {
            $(this).removeClass("has-child");
        }
    }) 

如果您需要进一步说明,请告诉我。

4

0 回答 0