我有一个页面,其中包含调用菜单模式的按钮。模态包含另外两个按钮,它们调用两个子菜单 - 每个按钮一个。看笔: https://codepen.io/t411tocreate/pen/yoxJGOjavascript - 避免可重复的代码
它确实有效。但目前的问题是,我重新写一个可重复的代码来调用每个子菜单:
$('.show-submenu-1').on('click', function() {
$('.submenu-1.offcanvas').addClass('offcanvas--active');
})
$('.show-submenu-2').on('click', function() {
$('.submenu-2.offcanvas').addClass('offcanvas--active');
})
这种方法似乎很愚蠢。我需要用更少的重复的阵列的解决方案,类似的forEach功能:
var menus = [
'.show-submenu-1',
'.show-submenu-2'
];
menus.forEach(function(menu){
$(menu).on('click', function() {
$(`${menu}.offcanvas`).addClass('offcanvas--active');
})
});
当然,这种情况下将无法正常工作。我怎样才能让我的代码干?
我只是看了一下codepen,所以我可能会错过一些东西,但是你不能在子菜单1和子菜单2中使用相同的CSS类吗?他们似乎风格一致,而且这会让你免于重复自己,我想。也许只是作为一个班的子菜单? –
难道你不能从数组项中移除'.show-'并将它添加到选择器中进行绑定吗? '$(\'.show - $ {menu} \').on()' – spanky