我遇到了一个案例,我正在使用 @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");
}
})
如果您需要进一步说明,请告诉我。