【问题标题】:How to trigger mouseover programmatically? (orce hover state not working)如何以编程方式触发鼠标悬停? (orce 悬停状态不起作用)
【发布时间】:2018-06-12 02:15:53
【问题描述】:

在此页面上:https://turbo-theme-seoul.myshopify.com/ 当鼠标悬停在相应的菜单项上时会出现下拉菜单。为了检查下拉菜单的 HTML 元素,我需要强制它们显示。通常这可以通过在开发人员工具中强制父菜单项的状态为:hover 来完成,但在这种情况下它不起作用。我猜下拉是由javascript而不是CSS触发的。如何使这个下拉菜单以编程方式显示而无需将鼠标移到它上面?我试过了

$($0).hover()

$0.dispatchEvent('mouseover')

在父菜单项上,它们都不起作用。在我看来,“鼠标悬停”事件无法以编程方式触发。那我该怎么做呢? PS:我知道我可以在 HTML 中找到下拉菜单并从中删除“display:none”,我只想知道是否有任何方法可以触发 mouseover 事件并让下拉菜单以编程方式出现以用于学习目的.

【问题讨论】:

  • 我投票结束这个问题,因为我不想帮助某人对别人的网站进行逆向工程。
  • @Jorg,你有没有看到一个很酷的技术并想弄清楚它是如何完成的?
  • @Steve 一直都是,如果我问你它是如何工作的,我会什么都学不到。因此,我不打算调试它,因为你要求我这样做,因为你什么也学不到。

标签: javascript events developer-tools


【解决方案1】:

正如jquery官方文档所说:

.hover() 方法在传递单个函数时,将为 mouseenter 和 mouseleave 事件执行该处理程序。这允许用户在处理程序中使用 jQuery 的各种切换方法,或者根据 event.type 在处理程序中做出不同的响应。

所以悬停事件由mouseentermouseleave 事件组成,所以你不能以编程方式触发悬停事件,因为你不能同时触发mouseentermouseleave。所以你应该使用.mouseenter() 显示您的下拉菜单,并使用.mouseleave() 隐藏它。

【讨论】:

  • 我做了$($0).mouseenter(),它不起作用,下拉菜单不会显示。
  • @shenkwen $0 是什么?试试$('.mega-menu-parent').mouseenter(),它可以工作。
猜你喜欢
  • 2015-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-25
  • 2015-04-04
  • 1970-01-01
  • 1970-01-01
  • 2019-08-21
相关资源
最近更新 更多