Я использую AMP.setState, чтобы отслеживать, какие дочерние элементы отображать в навигации.На всех настольных браузерах это работает нормально.Однако на iPhone кажется, что эти обновления состояния не работают.
<header>
<button class="close" on="tap:megamenu.close" role="button" tabindex="0">
<span>Close</span>
</button>
</header>
<nav class="hb__megaMenu--mobile">
@{
var parentIndex = 0;
}
@foreach (var item in Model.Items)
{
var childIndex = 0;
var highlightClass = parentIndex == Model.Items.Count - 1 ? "highlight" : "";
if (item.Children != null && item.Children.Count > 0)
{
<ul class="@highlightClass">
@foreach (var child in item.Children)
{
var selectedClass = child.Selected ? "selected" : "";
<li class="@selectedClass">
@if (child.Children != null && child.Children.Count > 0)
{
<span class="link" role="button" tabindex="@childIndex" on="tap: megamenu-level-1.open, AMP.setState({parentId: @parentIndex, childId: @childIndex, childItems: menuItems[@parentIndex].Children[@childIndex].Children})">
<span>@Html.Raw(child.Label)</span>
<span class="icon icon--rightarrow"></span>
</span>
}
else
{
<a href="#">@Html.Raw(child.Label)</a>
}
</li>
childIndex++;
}
</ul>
}
parentIndex++;
}
</nav>
</amp-sidebar>
<amp-sidebar id="megamenu-level-1" class="overlay overlay--megamenu" layout="nodisplay" side="left">
<header>
<button class="close" on="tap:megamenu-level-1.close,megamenu.close" role="button" tabindex="0">
Close
</button>
</header>
<header class="backHeader">
<button class="close" on="tap:megamenu-level-1.close" role="button" tabindex="0">
Back
</button>
</header>
<nav class="hb__megaMenu--mobile">
<ul>
<amp-list layout="fixed-height" height="700" [src]="childItems" items=".">
<template type="amp-mustache">
{{#Selected}}
<li class="selected">
<span>{{child.Label}}</span>
{{/Selected}}
{{^Selected}}
<li>
{{/Selected}}
{{#Children}}
<span class="link" role="button" tabindex="1" on="tap: AMP.setState({ levelTwoItems: childItems[{{ParentIndex}}].Children }), megamenu-level-2.open">
{{/Children}}
{{^Children}}
<a href="{{ Link.Href }}">
{{/Children}}
{{ Label }}
{{^Children}}
</a>
{{/Children}}
{{#Children}}
<span class="icon icon--rightarrow"></span>
{{/Children}}
</li>
</template>
</amp-list>
</ul>
</nav>
</amp-sidebar>
Я задавался вопросом, была ли это проблема с заголовком безопасности, поскольку я получал ошибки на консоли разработчика Safari для настольных компьютеров.Я не получил никаких ошибок на рабочем столе Chrome или Firefox.Похоже, что работает нормально на устройствах Android.