Добавьте еще одно раскрывающееся подменю JavaScript.Javascript

Форум по Javascript
Ответить
Anonymous
 Добавьте еще одно раскрывающееся подменю JavaScript.

Сообщение Anonymous »

На моем веб-сайте Wordpress есть раскрывающееся меню, которое добавляет элементы подменю и их категории в раскрывающееся меню. Это работает для одного пункта меню с помощью класса #id. Теперь я не могу заставить его работать с двумя пунктами меню. Простое копирование кода для другого элемента не сработало и не кажется мне чистым. Может ли кто-нибудь помочь? Заранее спасибо.


const popupContainer = document.getElementById('menu-item-2026');
const popupContent = document.getElementById('sub_menu');
popupContainer.addEventListener('mouseover', function() {
popupContent.style.display = 'block';
});
popupContent.addEventListener('mouseover', function() {
popupContent.style.display = 'block';
});
popupContainer.addEventListener('mouseout', function() {
popupContent.style.display = 'none';
});
popupContent.addEventListener('mouseout', function() {
popupContent.style.display = 'none';
});
$('.menu-item-has-children .menu-item-has-children a').on("click", function(e) {
$(this).next('ul').toggle();
e.stopPropagation();
});








Сгенерированный HTML: Функции PHP-кода:
add_filter( 'wp_nav_menu_objects', 'submenu_limit', 10, 2 );

function submenu_limit( $items, $args ) {

if ( empty($args->submenu) ) {
return $items;
}

$parent_id = array_pop( wp_filter_object_list( $items, array( 'title' => $args->submenu ), 'and', 'ID' ) );
$children = submenu_get_children_ids( $parent_id, $items );

foreach ( $items as $key => $item ) {

if ( ! in_array( $item->ID, $children ) ) {
unset($items[$key]);
}
}

return $items;
}

function submenu_get_children_ids( $id, $items ) {

$ids = wp_filter_object_list( $items, array( 'menu_item_parent' => $id ), 'and', 'ID' );

foreach ( $ids as $id ) {
$ids = array_merge( $ids, submenu_get_children_ids( $id, $items ) );
}

return $ids;
}


Подробнее здесь: https://stackoverflow.com/questions/798 ... wn-submenu
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»