javascript - 不同 ID 对的相同 Javascript 代码

标签 javascript

我下面有一些 JS 代码,基本上代表:当具有 x1 ID 的元素悬停时,使具有 x1-1 ID 的元素可见,然后在 mouseout 上返回到默认隐藏。问题是我还有几个 ID 对(x2 和 x2-1、x3 和 x3-1 等)需要应用相同的代码,我不想重复代码 5 或 6 次。有没有一种聪明的方法可以用几行代码将其包装起来?

document.getElementById("x1").addEventListener("mouseover", mouseOver);
document.getElementById("x1").addEventListener("mouseout", mouseOut);

function mouseOver() {
    document.getElementById("x1-1").style.visibility = "visible";
}

function mouseOut() {
    document.getElementById("x1-1").style.visibility = "hidden";
}

最佳答案

不要使用 id,使用类。你应该为独占的特定元素使用 id,如果你有一组相似的元素,类更好:

 function mouseOver() {
            this.style.visibility = "visible";
 }
function mouseOut() {
            this.style.visibility = "hidden";
}
var classCollection= document.getElementsByClassName("classname");

classCollection.forEach(function(i){
    i.addEventListener("mouseover", mouseOver);
    i.addEventListener("mouseout", mouseOut);
})

在此处查看进一步说明:JavaScript click event listener on class

关于javascript - 不同 ID 对的相同 Javascript 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51542693/

相关文章:

javascript - Angular2,链接不适用于延迟加载的模块,但适用于页面刷新

javascript - Stripes:无法添加到通过 javascript 动态创建的表格中

javascript - ng-click 从内部数组中删除项目

javascript - ER_JSON_USED_AS_KEY : JSON column 'parent_ids' supports indexing only via generated columns on a specified JSON path

php - 类型错误:$(...) 不是函数

javascript - 动态按钮不调用功能

javascript - 在选定的不同单选按钮上调用不同的 URL 表单 JavaScript

Javascript - 单击每个选项循环选择选项

javascript - 在 JavaScript 中迭代 DOM 时关闭标签事件

javascript - p :dataTable livescroll overrides js function