@Alerrll

Как скрыть WP Mobile Menu при нажатии на ссылку меню?

Привет всем!
На сайте есть меню, которое состоит из ссылок, которые прокручивают страницу к нужной области.

Добавил на сайт мобильное меню (плагин) для адаптации.
Все работает, страница прокручивается, но меню не сворачивается при нажатии на ссылку или на само меню.
Меню сворачивается только при нажатии на крестик или на страницу.

Дня 2 провозися и не смог реализовать сворачивание меню.
Насколько понял, бработка событий с помощью методов jQuery должна помочь.
Можно отловить событие нажатия на ссылку или на само меню и сымитировать клик по крестику.

jQuery-код нужно внести в functions.php. Добавил в конец файла:
function on_click_menuClose_custom_script() {
	?>
		<script>	
		// window.location.replace("http://hi.com");
		// $('i.mob-icon-menu.mob-menu-icon').click();
		/*
		jQuery('.wp-mobile-menu').on('click', '.menu-item a', function(event){
		 var href_link = jQuery(this).attr('href');
		 if (href_link.includes('#')){
			  window.location.replace("http://hi.com");
		  event.preventDefault();
		  jQuery('.mobmenu-right-alignment .mob-icon-cancel-1.mob-cancel-button').click();
		  //jQuery('html, body').animate({
		  // scrollTop: jQuery(href_link).offset().right - 45
		  //}, 2000); 
		 }
		}); 

		jQuery('#mobmenuright.wp-mobile-menu').on('click', 'li', function(){
		 var href_link = jQuery(this).find('a').attr('href');
		 window.location.href = href_link;
		}); */
		jQuery('.mob-icon-menu.mob-menu-icon').on('click',function(){
		  window.location.replace("http://hi.com");
		});
		$(document).ready(function() {
		 //added missing-v quotes 
		 $('#mob-icon-menu mob-menu-icon').click(function() {
			 window.location.replace("http://hi.com");   
		 });    
	   });  
		</script>
	<?php
}
add_action( 'wp_footer', 'on_click_menuClose_custom_script' );


Я не понимаю как работает functions.php (не программист вебсайтов). Он вызывается 1 раз при старте и регистрирует обработчики событий? Верно?

Тестировал код, если я прописываю функцию так:
function on_click_menuClose_custom_script() {
?>
window.location.replace("http://hi.com");  
}
add_action( 'wp_footer', 'on_click_menuClose_custom_script' );

то при загрузке страницы работает переброс на hi.com. То есть functions.php в целом работает.

Здесь человек очень доходчиво объясняет как реализовать то, что мне нужно (отредактировал под себя):
function on_click_menuClose_custom_script() {
	?>
		<script>	
		
		jQuery('#mobmenuright.wp-mobile-menu').on('click', '.menu-item a', function(event){
		 var href_link = jQuery(this).attr('href');
		 if (href_link.includes('#')){
		  event.preventDefault();
		  jQuery('.mobmenu-right-alignment .mob-icon-cancel').click();
		  jQuery('html, body').animate({
		   scrollTop: jQuery(href_link).offset().top - 45
		  }, 2000); 
		 }
		});

		jQuery('#mobmenuright.wp-mobile-menu').on('click', 'li', function(){
		 var href_link = jQuery(this).find('a').attr('href');
		 window.location.href = href_link;
		});
		</script>
	<?php
}// window.location.replace("http://google.com"); 
add_action( 'wp_footer', 'on_click_menuClose_custom_script' );// */

Отсюда взял данные:
645eb593275cd560342678.jpeg
645eb5c3c3cfe387233181.jpeg

Как результат скрытие меню при клике на ссылку или на окно меню не работает.
К сожалению с js пока не дружу, но меню нужно сделать.

Подскажите как можно убрать меню при клике на ссылку или на само окно меню.
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы