javascript - 将 mouseenter 与 if 语句结合起来?

标签 javascript

假设我有 2 个 div 元素。如果我在第一个元素上 mouseenter ,我会 console.log 一条消息,如果是第二个元素,则会生成另一条消息。

为什么它不能与下面的纯 Javascript 一起工作?

只有当我向每个单独的 div 添加事件监听器时,它才会起作用 例如div[0].onmouseenter = function(){}div[1].onmouseenter = function(){}

提前致谢!

HTML

<div>Test</div>
<div>Test1</div>

Javascript

var div = document.querySelectorAll("div");

var test = function(i){
    div[i].onmouseenter = function(){
      if(div[i]===0){
        console.log("success");
      } else if (div[i]===1){
        console.log("another success");
      }
    }
}

for(i=0;i<div.length;i++){
    test(i);
}

最佳答案

div[i] 是对 div 的引用。你正在将它与一个数字进行比较。相反,您只需要比较 i:

var div = document.querySelectorAll("div");
   
var test = function(i){
    div[i].onmouseenter = function(){
      if(i===0){
        console.log("success");
      } else if (i===1){
        console.log("another success");
      }
    }
}
    
for(i=0;i<div.length;i++){
    test(i);
}
<div>Test</div>
<div>Test1</div>

关于javascript - 将 mouseenter 与 if 语句结合起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42783888/

相关文章:

JavaScript 从子对象调用父函数

javascript - 使用 javascript 将检索到的数据保存到本地 json 数据库中

javascript - 作为单击处理程序附加的函数在单击之前被调用

javascript - 在 JavaScript 闭包中重新定义局部变量

javascript - 当我的组件卸载时,如何删除 Canvas 元素?

javascript - OL5 的 ScaleLine 不适用于 EPSG :25832

javascript - 如何在javascript中使用拆分

javascript 风格——我应该定义变量/类吗?

javascript - 在javascript中获取两个日期之间的差异

javascript - 在浏览器中以实际尺寸显示带有毫米尺寸的 SVG