2014-11-25 4 views
3

У меня возникли трудности с заменой поведения моего меню Wordpress. Я ищу это показать при нажатии и не при наведении:Показать/скрыть подменю wordpress

<nav> 
    <ul> 
     <li> 
      <?php wp_nav_menu(array('theme_location' => 'header-menu')); ?> 
     <li> 
      <br /> 
     <form method="get" id="search_form" action="<?php bloginfo('home'); ?>"> 
      <input type="text" class="text searchForm" name="s" value="Search" > 
     </form> 
    </ul> 
</nav> 

jQuery(document).ready(function ($) { 
    $(".sub-menu").hide(); 
    $(".current_page_item .sub-menu").show(); 
    $("li.menu-item").click(function() { // mouse CLICK instead of hover 
     $(".sub-menu").hide(); // First hide any open menu items 
     $(this).find(".sub-menu").show(); // display child 
    }); 
}); 

Когда я изменить его, чтобы переключить его убивает другие ссылки в меню. Я не уверен, что проблема здесь ...

+1

Можете ли вы предоставить jsfiddle или другую демонстрацию? –

+0

Это довольно сложно, потому что его пользовательский шаблон Wordpress, который я создал, так что это нормально работает, когда вы наводите курсор на заголовок меню, чтобы отображать подменю под ним, но если вы переключите его, чтобы переключить его, он отлично переключается но убивает другие предметы навигации. – user3328557

+1

Я не говорю никаких ошибок внутри вашего кода. Мне должно быть что-то, связанное с структурой дома. Без этого я не могу сказать много. –

ответ

3

Вы можете просто использовать функцию jQuery click, а не зависание. Также вам нужно убедиться, что тег <a> не работает, отключив поведение гиперссылки по умолчанию.

jQuery(document).ready(function ($) { 
    $(".sub-menu").hide(); 
    $(".current_page_item .sub-menu").show(); 
    $("li.menu-item").click(function() { // mouse CLICK instead of hover 
     // Only prevent the click on the topmost buttons 
     if ($('.sub-menu', this).length >=1) { 
      event.preventDefault(); 
     } 
     $(".sub-menu").hide(); // First hide any open menu items 
     $(this).find(".sub-menu").show(); // display child 
     event.stopPropagation(); 
    }); 
}); 
+0

, так что он почти прав, теперь он показывает и быстро скрывается. что может быть причиной этого? – user3328557

+1

Я бы хотел, чтобы меню оставалось открытым, если вы не нажмете на другой элемент в меню, а затем закроется. – user3328557

+0

Отредактировал свой ответ, чтобы отразить ваше запрошенное поведение. –

Смежные вопросы