J'ai une page avec un bouton qui appelle un menu modal. Le modal contient deux autres boutons qui appellent deux sous-menus - un pour chaque bouton. Regardez le stylo: https://codepen.io/t411tocreate/pen/yoxJGOjavascript - évite le code répétable
Cela fonctionne réellement. Mais le problème actuel est que je ré-écrire un code répétitif pour appeler chaque sous-menu:
$('.show-submenu-1').on('click', function() {
$('.submenu-1.offcanvas').addClass('offcanvas--active');
})
$('.show-submenu-2').on('click', function() {
$('.submenu-2.offcanvas').addClass('offcanvas--active');
})
Cette approche semble être assez stupide. Je besoin d'une solution avec moins de répétitions, quelque chose comme la fonction forEach pour les tableaux:
var menus = [
'.show-submenu-1',
'.show-submenu-2'
];
menus.forEach(function(menu){
$(menu).on('click', function() {
$(`${menu}.offcanvas`).addClass('offcanvas--active');
})
});
Bien sûr, ce scénario ne fonctionnera pas. Comment puis-je rendre mon code SEC?
Je viens de jeter un coup d'oeil sur le codepen, il me manque peut-être quelque chose, mais ne pourriez-vous pas utiliser la même classe CSS pour le sous-menu 1 et le sous-menu 2? Ils semblent avoir un style identique, et cela vous éviterait de vous répéter, je pense. Peut-être juste un sous-menu en tant que classe? –
Ne pouvez-vous pas supprimer '.show-' des éléments du tableau et l'ajouter au sélecteur qui effectue la liaison? '$ (\' .show - $ {menu} \ ') .on()' – spanky