当菜单中只有隐藏的孩子时,会添加'has-child'类

时间:2014-08-11 10:29:07

标签: piranha-cms

我遇到过一个案例,我正在使用@ 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");
        }
    }) 

如果您需要进一步澄清,请与我们联系。

0 个答案:

没有答案