我遇到过一个案例,我正在使用@ UI.Menu帮助程序并使用默认应用的css类自定义外观,我认为在可能不应该添加类时会添加一个类。
如果有孩子的话。 class is on然后我使用以下内容添加+符号:
.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");
}
})
如果您需要进一步澄清,请与我们联系。