Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 菜单在IE中的行为不同_Javascript_Html_Css_Asp.net Mvc_Internet Explorer - Fatal编程技术网

Javascript 菜单在IE中的行为不同

Javascript 菜单在IE中的行为不同,javascript,html,css,asp.net-mvc,internet-explorer,Javascript,Html,Css,Asp.net Mvc,Internet Explorer,我正在一个网站上工作,该网站在Chrome中可以正常工作,但在Internet Explorer a中打开它时,会发现导航菜单不合适。 调查该问题时,发现并非所有列表项都包装在主ul中,并且2个列表项没有正确的类 有问题的人: 正确的答案是: 我的项目是使用ASP.NET MVC 4和Umbraco CMS制作的。菜单视图如下所示: <ul class="nav"> <li class="@(CurrentPage.Url == "/" ? "current_page_it

我正在一个网站上工作,该网站在Chrome中可以正常工作,但在Internet Explorer a中打开它时,会发现导航菜单不合适。

调查该问题时,发现并非所有列表项都包装在主ul中,并且2个列表项没有正确的类

有问题的人:

正确的答案是:

我的项目是使用ASP.NET MVC 4和Umbraco CMS制作的。菜单视图如下所示:

<ul class="nav">
<li class="@(CurrentPage.Url == "/" ? "current_page_item" : null)"><a class="Lvl1 home" href="/">Home</a></li>

@foreach (var item in menuItems)
{
<li class="@(CurrentPage.Id == item.Id ? "current_page_item" : null) Col1">
    <a class="lvl1 parent" href="@item.Url">@item.Name</a>

    @{ var subMenuItems = item.Children.Where("Visible"); }

    @if (subMenuItems.Count() > 0)
    {
        <ul>
            <li>
            @foreach (var sub in subMenuItems)
            {
                if (sub.HasValue("menuItemImage"))
                {
                    <div class="NavItemHolder">
                        <div class="NavItemImage">
                            <a href="@sub.Url"><img src="@Umbraco.Field(sub, "menuItemImage", recursive: true)"></a>
                        </div>
                        <div class="NavItemDesc">
                            <a href="@sub.Url">
                            <span>@sub.Name</span><br>
                            <span>@sub.menuItemInfo</span>
                            </a>
                        </div>
                    </div>
                }
                else
                {<li><a class="parent" href="@sub.Url">@sub.Name</a></li>}
            }
            </li>
        </ul>
    }
</li>
}
</ul>
  • @foreach(菜单项中的var项) {
  • @{var subnumitems=item.Children.Where(“可见”);} @if(subnumitems.Count()>0) {
    • @foreach(子菜单项中的var子项) { if(子项HasValue(“menuItemImage”)) { } 其他的 {
    • } }
    }
  • }

这在Chrome中运行良好,似乎无法找到IE的问题。

您应该为每个子菜单创建一个新的列表项,而不是将所有子菜单包装在一个列表项中(或者嵌套列表项,而不使用
ul
包装器将它们分离到适当的嵌套列表中)

  • @foreach(菜单项中的var项) {
  • @{var subnumitems=item.Children.Where(“可见”);} @if(subnumitems.Count()>0) {
      @foreach(子菜单项中的var子项) {
    • if(子项HasValue(“menuItemImage”)) { } 其他的 {}
    • }
    }
  • }

为什么要将列表标记放在子菜单项循环之外?我想我是从原始站点复制了html,但现在我更正了,谢谢。
<ul class="nav">
<li class="@(CurrentPage.Url == "/" ? "current_page_item" : null)"><a class="Lvl1 home" href="/">Home</a></li>

@foreach (var item in menuItems)
{
<li class="@(CurrentPage.Id == item.Id ? "current_page_item" : null) Col1">
    <a class="lvl1 parent" href="@item.Url">@item.Name</a>

    @{ var subMenuItems = item.Children.Where("Visible"); }

    @if (subMenuItems.Count() > 0)
    {
        <ul>
            @foreach (var sub in subMenuItems)
            {
                <li>
                if (sub.HasValue("menuItemImage"))
                {
                    <div class="NavItemHolder">
                        <div class="NavItemImage">
                            <a href="@sub.Url"><img src="@Umbraco.Field(sub, "menuItemImage", recursive: true)"></a>
                        </div>
                        <div class="NavItemDesc">
                            <a href="@sub.Url">
                            <span>@sub.Name</span><br>
                            <span>@sub.menuItemInfo</span>
                            </a>
                        </div>
                    </div>
                }
                else
                {<a class="parent" href="@sub.Url">@sub.Name</a>}
                </li>
            }
        </ul>
    }
</li>
}
</ul>