У меня есть сайт Worpress с установленной темой JetOne.
Когда я щелкаю элемент корневого меню в главном меню навигации, чтобы открыть его элементы (ссылки в этом корневом элементе), также срабатывает действие щелчка для выбранной ссылки (корневой элемент), в этом дело. Проблема присутствует в мобильном представлении для этой темы. я уже пробовал
@media (max-width: 768px) {
.ct-main-navigation > .menu-item > a {
pointer-events: none;
}
}
Но этот трюк просто отключает ссылку для корневых элементов меню. Как правильно достичь цели?
Есть еще идея: пересоздать навигацию с помощью хука wp_nav_menu_items, но я не хочу ломать оригинальный дизайн и не знаю, как именно это сделать.
HTML
<nav id="ct-main-nav__wrapper" itemscope itemtype="http://schema.org/SiteNavigationElement">
<ul id="menu-menu" class="ct-main-navigation"><li id="menu-item-80" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-80"><a href="https://demo.curlythemes.com/private-jet/services/">Services</a>
<ul class="sub-menu">
<li id="menu-item-333" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-333"><a href="https://demo.curlythemes.com/private-jet/services/private-jet-2/">Private Jet Charters</a></li>
<li id="menu-item-409" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-409"><a href="https://demo.curlythemes.com/private-jet/services/business-jets/">Business Jets Charters</a></li>
<li id="menu-item-410" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-410"><a href="https://demo.curlythemes.com/private-jet/services/helicopter-charters/">Helicopter Charters</a></li>
<li id="menu-item-408" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-408"><a href="https://demo.curlythemes.com/private-jet/services/air-taxi-services/">Air Taxi Services</a></li>
</ul>
</li>
<li id="menu-item-78" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-78"><a href="https://demo.curlythemes.com/private-jet/about-us/">About Us</a>
<ul class="sub-menu">
<li id="menu-item-299" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-299"><a href="http://demo.curlythemes.com/private-jet/about-us/#our-values">Our Values</a></li>
<li id="menu-item-300" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-300"><a href="http://demo.curlythemes.com/private-jet/about-us/#our-history">Our History</a></li>
<li id="menu-item-301" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-301"><a href="http://demo.curlythemes.com/private-jet/about-us/#our-fleet">Our Fleet</a>
<ul class="sub-menu">
<li id="menu-item-303" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-303"><a href="https://demo.curlythemes.com/private-jet/about-us/aircraft/">CESSNA 208 GC</a></li>
<li id="menu-item-304" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-304"><a href="https://demo.curlythemes.com/private-jet/about-us/aircraft/">DE HAVILLAND DHC-8-200</a></li>
<li id="menu-item-396" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-396"><a href="https://demo.curlythemes.com/private-jet/about-us/aircraft/">BOMBARDIER JET 200</a></li>
<li id="menu-item-397" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-397"><a href="https://demo.curlythemes.com/private-jet/about-us/aircraft/">EMBRAER 175</a></li>
</ul>
</li>
<li id="menu-item-302" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-302"><a href="http://demo.curlythemes.com/private-jet/about-us/#our-team">Our Team</a></li>
</ul>
</li>
<li id="menu-item-77" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-77"><a href="https://demo.curlythemes.com/private-jet/empty-legs/">Empty Legs</a></li>
<li id="menu-item-76" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-76"><a href="https://demo.curlythemes.com/private-jet/news/">News</a></li>
<li id="menu-item-75" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-75"><a href="https://demo.curlythemes.com/private-jet/contact/">Contact</a></li>
</ul> </nav>
Исходный CSS
.ct-main-navigation .menu-item-has-children > a::before,
.ct-main-navigation .page_item_has_children > a::before {
content: "";
position: relative;
font-family: 'themify';
display: inline-block;
-webkit-transition: opacity 100ms ease-in;
transition: opacity 100ms ease-in;
}
.ct-main-navigation .menu-item-has-children > a::before,
.ct-main-navigation .page_item_has_children > a::before {
float: right;
margin: 0 0.5rem;
display: inline-block; }
@media (min-width: 48em) {
.ct-main-navigation .menu-item-has-children > a::before,
.ct-main-navigation .page_item_has_children > a::before {
font-size: 0.5rem;
line-height: 2.25;
margin-right: 0;
} }
@media (min-width: 576px) {
.ct-main-navigation .menu-item .menu-item-has-children > a::before,
.ct-main-navigation .page_item .page_item_has_children > a::before {
content: '\e649';
line-height: 2.2;
} }
.ct-main-navigation a {
text-decoration: none;
-webkit-transition: all 200ms ease;
transition: all 200ms ease;
display: block;
padding: 0.25rem 0; }
P.S. Другим обходным путем для предметной проблемы является создание CSS следующим образом.
Измененный CSS
@media (max-width: 768px) {
.ct-main-navigation .menu-item-has-children::before,
.ct-main-navigation .page_item_has_children::before {
position: absolute;
right: 0px;
height: 100%;
padding-right: 10px;
padding-top: 7px;
top: 0;
z-index: 5;
width: 40px;
text-align: right;
content: '';
font-family: 'themify';
display: inline-block;
-webkit-transition: opacity 100ms ease-in;
transition: opacity 100ms ease-in;
}
.ct-main-navigation .menu-item-has-children > a::before,
.ct-main-navigation .page_item_has_children > a::before {
display: none;
}
}
Как сделать фикс универсальным не только для Android устройств, но и для iOS?
Текущее исправление CSS нарушает разметку меню навигации на устройствах iPad (iOS).
When I click root menu element in the main navigation menu to open it click action for selected link also triggered that's the matter.
- person Mr T   schedule 23.02.2021<li>
, поэтому, когда вы нажимаете на нее, вы перенаправляетесь в расположение ссылки. Мне приходит в голову одно предложение: переместить значок из css в элемент<img />
или<i />
, сделать его больше для сенсорных устройств и при нажатии развернуть подменю, в противном случае перейти к расположению ссылки. - person Mr T   schedule 23.02.2021