Intereting Posts
Как скрыть приложение Android из переключателя задач Android.content.res.Resources $ NotFoundException: Идентификатор ресурса строки # 0x1 Ошибка Android In-App Purchase Freedom Hack – как это работает? Как я могу сделать SurfaceView больше, чем экран? Как исправить «Избегайте передачи null в качестве корня представления» в android? Остановить прокрутку на CollapsingToolbarLayout, чтобы он не полностью разрушался Проблема с базой данных sqlite, нет такой таблицы: Сбой данных с помощью NoSuchMethodError Изменение размера зоны отбрасывания для разрушения пузырьков Как продолжить использование изменений в браузере в Android 6.0 (API 23) Android: графический макет не работает – ничего не показывает Почему не исключение бросается при отключении ProgressDialog из фонового потока? React Native не поддерживает разработку в Windows (пока)? Обнаружение другого находящегося поблизости устройства Android через Bluetooth Как имитировать SIM-карту для Android

Ссылки / значки, которые генерируются в кодебе, не отображаются на некоторых мобильных устройствах

ОБНОВИТЬ:

Я решил протестировать, если это проблема с fontawesome, поэтому я заменил значки простым текстом:

<a href=\"javascript:void(0)\" onclick=\"expandMenu($(this))\" class=\"show-second-level toggle\"><span>V</span></a><a href=\"javascript:void(0)\" onclick=\"retractMenu($(this))\" class=\"hide-second-level toggle\"><span>^</span></a> 

Прямые текстовые ссылки теперь отображаются на всех устройствах и работают на Android, но они не работают на iPad (щелчок на них ничего не делает).


У меня есть складное меню на моем сайте. В моей ul, у меня есть категории, перечисленные с маленькой кареткой (fontawesome) рядом с ними, открывают / закрывают внутреннее меню. Так выглядит на моем iPhone:

Меню на моем iPhone

Расширенное меню

Красная рамка находится в теге 'a', поэтому вся область внутри красной границы должна развернуть меню при нажатии. Он делает это, как ожидалось, на всех настольных браузерах и моем iPhone. Однако мой клиент сообщает, что он не работает на iPad, MS Surface Pro или Android-телефоне. На каждом из них есть разные проблемы. Я поместил красную рамку вокруг ссылок расширения, чтобы увидеть, показываются ли ссылки в нужном месте. На планшете есть красная рамка, но стрелки отсутствуют. Нажатие на область, где они должны быть, ничего не делает. На Android красная рамка вообще не отображается, и снова, нажатие в области ничего не делает.

Это код, который генерирует эти пункты меню:

 <ul> <asp:Repeater ID="MenuRepeater" runat="server" OnItemDataBound="MenuRepeater_ItemDataBound"> <ItemTemplate> <li <%# (Container.DataItem as LinkData).Class %>> <asp:HyperLink ID="MenuHyperLink" runat="server"> </asp:HyperLink> <%# (Container.DataItem as LinkData).ExpandLinks %> <ul> <asp:Repeater DataSource='<%# DataBinder.Eval(Container.DataItem, "SubLinks") %>' runat="server"> <ItemTemplate> <li <%# (Container.DataItem as LinkData).Class %>> <a href='<%# DataBinder.Eval(Container.DataItem, "Link") %>'><%# DataBinder.Eval(Container.DataItem, "Text") %></a> </li> </ItemTemplate> </asp:Repeater> </ul> </li> </ItemTemplate> </asp:Repeater> </ul> 

ExpandLinks – это то, что генерирует стрелки. Я их динамически размещаю, потому что не все элементы меню расширяемы, поэтому код только устанавливает связь расширения, если элемент имеет подменю. Вот код, который генерирует меню. Оператор «if» является условием создания расширяемого меню; «Else» создает базовую ссылку без дочернего меню. Здесь важна роль tempLD.expandLinks.

 foreach (var item in sections) { // if we have more than on section, that means we have expandable categories if (sections.Count() > 1 && item != sections.First()) // for second item and on { tempLD = new LinkData(); tempLD.Text = item.SectionTitle; tempLD.Class = "class=\"category expandable\""; autoData.Add(tempLD); if (item.Link != null && item.Link.Any()) { // special case for first-level items: if (item.Link.Count() == 1 && item.Link.FirstOrDefault().a.OuterXML == item.SectionTitle) { tempLD.Link = item.Link.FirstOrDefault().a.href; tempLD.Class = "class=\"\""; } else { tempLD.ExpandLinks = "<a href=\"javascript:void(0)\" onclick=\"expandMenu($(this))\" class=\"show-second-level toggle\"><i class=\"fa fa-caret-down\"></i></a><a href=\"javascript:void(0)\" onclick=\"retractMenu($(this))\" class=\"hide-second-level toggle\"><i class=\"fa fa-caret-up\"></i></a>"; var subLinks = new List<LinkData>(); foreach (var child in item.Link) { var subLink = new LinkData(); subLink.Text = child.a.OuterXML; subLink.Link = child.a.href; subLink.Class = "class=\"category-child\""; subLink.SubLinks = new List<LinkData>(); subLinks.Add(subLink); } tempLD.SubLinks = subLinks; } } } else { tempLD = new LinkData(); tempLD.Text = item.SectionTitle; tempLD.Class = "class=\"sub-parent\""; tempLD.SubLinks = new List<LinkData>(); autoData.Add(tempLD); if (item.Link != null && item.Link.Any()) { foreach (var child in item.Link) { tempLD = new LinkData(); tempLD.Text = child.a.OuterXML; tempLD.Link = child.a.href; tempLD.Class = "class=\"\""; tempLD.SubLinks = new List<LinkData>(); autoData.Add(tempLD); } } } } 

Я полагаю, что это должна быть проблема с CSS или javascript, но я не знаю, что происходит

Вот HTML, который отображается:

 <ul> <li class="active"> <a id="ctl00_MainContentPH_SideBreadcrumb_MenuRepeater_ctl00_MenuHyperLink" href="/Our-Services/">Our Care</a> <ul></ul> </li> <li class="sub-parent"> <span>Specialty Care and Programs</span> <ul></ul> </li> <li class="category expandable"> <span>Programs and Clinics</span> <a href="javascript:void(0)" onclick="expandMenu($(this))" class="show-second-level toggle"><i class="fa fa-caret-down"></i></a><a href="javascript:void(0)" onclick="retractMenu($(this))" class="hide-second-level toggle"><i class="fa fa-caret-up"></i></a> <ul> <li class="category-child"> <a href="/Our-Services/Programs-and-Clinics/Birthmark-Treatment-Program/">Birthmark Treatment Program</a> </li> <li class="category-child"> <a href="/Our-Services/Programs-and-Clinics/Cancer-and-Blood-Disorders-Center/">Cancer and Blood Disorders Center</a> </li> <li class="category-child"> <a href="/Our-Services/Programs-and-Clinics/Craniofacial-Reconstruction-Program/">Craniofacial Reconstruction Program</a> </li> </ul> </li> <li class="category expandable"> <span>Rehabilitative Services and Therapy</span> <a href="javascript:void(0)" onclick="expandMenu($(this))" class="show-second-level toggle"><i class="fa fa-caret-down"></i></a><a href="javascript:void(0)" onclick="retractMenu($(this))" class="hide-second-level toggle"><i class="fa fa-caret-up"></i></a> <ul> <li class="category-child"> <a href="/Our-Services/Rehabilitative-Services-and-Therapy/Occupational-Therapy/">Occupational Therapy</a> </li> <li class="category-child"> <a href="/Our-Services/Rehabilitative-Services-and-Therapy/Physical-Therapy/">Physical Therapy</a> </li> <li class="category-child"> <a href="/Our-Services/Rehabilitative-Services-and-Therapy/Specialty-Therapy-Services/">Specialty Therapy Services</a> </li> </ul> </li> <li class="last "> <a id="ctl00_MainContentPH_SideBreadcrumb_MenuRepeater_ctl04_MenuHyperLink" href="/Our-Doctors/Medical-Specialists/">Medical Specialists</a> <ul></ul> </li> </ul> 

Попробуйте следующее решение. Значок привязки onclick = "return expandMenu ($ (this))" и в функции javascript в конце функции write return true.

  tempLD.ExpandLinks = "<a href=\"javascript:void(0)\" onclick=\"return expandMenu($(this))\" class=\"show-second-level toggle\"><i class=\"fa fa-caret-down\"></i></a><a href=\"javascript:void(0)\" onclick=\"return retractMenu($(this))\" class=\"hide-second-level toggle\"><i class=\"fa fa-caret-up\"></i></a>"; function expandMenu(ele) { // Your code goes here return true; } function retractMenu(ele) { // Your code goes here return true; } 

Я думаю, что ваша проблема находится в вашем файле .css. Определите высоту для ваших ссылок. Вам придется расширять их для мобильных устройств.

Например

 /* desktop */ .menu a { height:40px; } /* mobile */ @media only screen and (max-width : 480px) { .menu a { height:auto; max-height:60px; } } 

Если вы сообщаете, что вы css-файл, я обновлю свой ответ.