javascript - 捕获多个 slider 元素上的鼠标悬停

标签 javascript jquery html google-tag-manager

你想做什么?

我正在尝试跟踪鼠标悬停在轮播 slider 的每张幻灯片上的工具提示上(轮播 slider 的示例: here )。每张幻灯片都有 3-5 个可见的工具提示。当鼠标悬停在工具提示上时,将触发数据层事件。

每个工具提示都有相同的类变量,但没有 ID。代码更新以包含或删除工具提示行,具体取决于幻灯片的可见性。

示例 HTML:幻灯片 1

<div id="container">
<div class="tooltip" style="top: 140px; left: 260px;" tooltip="0"></div>
<div class="tooltip" style="top: 80px; left: 450px;" tooltip="1"></div>
<div class="tooltip" style="top: 200px; left: 730px;" tooltip="2"></div>
<div class="tooltip" style="top: 300px; left: 700px;" tooltip="3"></div>
<div class="tooltip" style="top: 550px; left: 840px;" tooltip="4"></div>
</div>

示例 HTML:幻灯片 2

<div id="container">
<div class="tooltip" style="top: 140px; left: 260px;" tooltip="0"></div>
<div class="tooltip" style="top: 80px; left: 450px;" tooltip="1"></div>
<div class="tooltip" style="top: 200px; left: 730px;" tooltip="2"></div>
</div>

您当前尝试执行此操作的代码是什么?

<script>

function hover(eClass) {
  var elem = document.getElementsByClassName(eClass);
  for (var i=0;i<elem.length;i++) {
    elem[i].addEventListener('mouseover', mouseOver);
  }
  function mouseOver() {
        dataLayer.push({
        'event':'elementHover'
    });

    var elem = null;
    var i = null;
  }
}  

hover("tooltip")

</script>

您期望结果是什么?

我希望只要工具提示悬停在轮播 slider 上,无论它位于哪张幻灯片(第一、第二、第五)上,dataLayer 事件都会触发。我尝试在每次悬停后重置 elem var 和 i var,以便脚本获得最新数量的幻灯片工具提示,但我一定做错了。

实际结果是什么?

JavaScript 代码工作并触发工具提示鼠标悬停在第一张幻灯片上的事件。。当我转到上一张或下一张幻灯片时,当我将鼠标悬停在工具提示上时,脚本不再触发事件。

最佳答案

解决方案是在每次幻灯片更改后应用事件监听器(即,在幻灯片更改时调用 hover("tooltip") 以确保事件监听器在 DOM 元素存在后应用于它们) .

关于javascript - 捕获多个 slider 元素上的鼠标悬停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46920861/

相关文章:

javascript - 如何在 php 中登录我后获取上次登录管理员的时间和日期

jquery - 如何使用 Paperclip 立即显示上传图像的缩略图?

javascript - 如何提高我网站的 IE6/7 JS 性能?

javascript - 更改域名;操作点击的链接

javascript - Jquery slider (查询中的 php 值)

JavaScript SRC 路径不起作用

javascript - Angular 无意绑定(bind)/对象镜像

javascript - 基于asp :DropDownList selection更改图片源

html - 如何使用 CSS 规范化按钮和 anchor ?

javascript - 为什么使用 insertCell 创建单元格这么慢?