为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用鼠标悬停获取回调函数以记录数据属性的值?

如何使用鼠标悬停获取回调函数以记录数据属性的值?

温温酱 2022-06-16 09:52:14
因此,我在这里选择了一个“li”列表,并且我正在使用 for 循环为每个标签添加一个 mouseover 事件侦听器。<ul>    <li data-animal="horse">Animal 1</li>    <li data-animal="dog">Animal 2</li>    <li data-animal="cat">Animal 3</li></ul>我停了下来,因为当鼠标移到每个数据属性上时,回调函数应该记录每个数据属性的值。我怎样才能做到这一点?const mouseOverLoop = document.querySelectorAll("li");for (let i = 0; i < mouseOverLoop.lenght; i++) {  mouseOverLoop[i].addEventListener("mouseover", hoverOver);}function hoverOver() {  console.log();}
查看完整描述

2 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

有2个问题:

  • 一个错字,应该是mouseOverLoop.length(不是lenght

  • console.log()没有要记录的字符串。

您可以使用事件的target属性来识别正确的元素,以及getAttribute获取属性值的方法。

function hoverOver(e) {

   console.log(e.target.getAttribute('data-animal'));

}

const mouseOverLoop = document.querySelectorAll("li");

for (let i = 0; i < mouseOverLoop.length; i++) {

  console.log(mouseOverLoop[i]);

  mouseOverLoop[i].addEventListener("mouseover", hoverOver);

}

function hoverOver(e) {

   console.log(e.target.getAttribute('data-animal'));

}

<ul>

    <li data-animal="horse">Animal 1</li>

    <li data-animal="dog">Animal 2</li>

    <li data-animal="cat">Animal 3</li>

</ul>


查看完整回答
反对 回复 2022-06-16
?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

<ul id="animals">

    <li data-animal="horse">Animal 1</li>

    <li data-animal="dog">Animal 2</li>

    <li data-animal="cat">Animal 3</li>

</ul>

document.getElementById("animals").addEventListener("mouseover", function({ target: { dataset } }) {

  if (dataset.animal) {

    console.log(dataset.animal);

  }

});


查看完整回答
反对 回复 2022-06-16
  • 2 回答
  • 0 关注
  • 177 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号