Fügen Sie ein weiteres Javascript-Dropdown-Untermenü hinzuJavaScript

Javascript-Forum
Anonymous
 Fügen Sie ein weiteres Javascript-Dropdown-Untermenü hinzu

Post by Anonymous »

Ich habe auf meiner Wordpress-Website ein Dropdown-Menü, das Untermenüelemente und deren Kategorien zu einem Dropdown-Menü hinzufügt. Dies funktioniert für einen Menüpunkt mit Hilfe dieser #id-Klasse. Jetzt kann ich es für zwei Menüpunkte nicht zum Laufen bringen. Das einfache Kopieren des Codes für ein anderes Element hat nicht funktioniert und erscheint mir nicht sauber. Könnte jemand helfen? Vielen Dank im Voraus.

Code: Select all

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();
});

Code: Select all






Generiertes HTML:

Code: Select all

[list]
[*][url=#]Cross-functional training & tools[/url]
[*][url=#]ESG Programme management support[/url]
[*][url=#]Industry collaboration & pre-competitive initiatives[/url]
[*][url=#]Multi-stakeholder intiatives[/url]
[/list]
Funktionen PHP-Code:

Code: Select all

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;
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post