我有多个使用不同元素执行相同任务的函数。这是一个移动菜单。所以我有一个功能,当单击菜单按钮时...打开移动菜单,将汉堡变换为“X”并使页面叠加可见。我还有一个功能,当菜单打开并且用户更改设备的方向时关闭菜单。我还有一个功能,当用户点击/点击移动菜单之外的任何地方时,它将关闭菜单(以及点击“X”)。
在这些函数中,我使用“removeClass或toggleClass”重复了很多。是否有更简单的方法来表示所有这些代码行,以便它们在其他地方声明,然后在所有这些函数中调用?变量可能吗?因为我不喜欢重复自己。
这是重复/示例代码。
$("#mobile-menu").removeClass("enabled1");
$("#menu-button").removeClass("open");
$("#mobile-menu-wrapper").removeClass("enabled1");
$("#page-overlay").removeClass("enabled1");
答案 0 :(得分:1)
您希望将菜单的“打开”和“关闭”抽象为函数...
$('button').on('click',function(){
openMenu();
});
$('button2').on('click',function(){
closeMenu();
});
...然后从您需要的任何地方调用该函数。
library(magrittr)
# Define the columns to be used
col.visits = colnames(df)[4:ncol(df)] # Visits are represented from column 4 on
col.baseline = "firstpc10"
col.final = "lastpc10"
答案 1 :(得分:0)
您可以拥有一个包含要删除该类的所有元素的数组,并将其传递给一个函数,其中每个元素都会删除该类。
function allRemoveClass(selectors, cl) {
selectors.forEach((s) => $(s).removeClass(cl));
}
let enabled = ["#mobile-menu", "#mobile-menu-wrapper", "#page-overlay"];
allRemoveClass(enabled, "enabled1");
let opened = ["#menu-button"];
allRemoveClass(opened, "open");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>