【问题标题】:Force mouse click强制鼠标点击
【发布时间】:2012-04-19 12:02:38
【问题描述】:

好的,我知道这是一个菜鸟问题,但有没有办法强制点击鼠标?更具体地说,假设我想在随机时间触发鼠标点击,但我不知道那段时间鼠标会停留在哪个元素中。

【问题讨论】:

  • 无法得到您想要的。您应该更具体地获得帮助。
  • 你不能强制用户点击鼠标...
  • 您可以模拟点击事件,但从您的问题来看,您并不清楚您想要做什么。您想触发对元素的特定点击吗?你想点击鼠标在atm上的元素吗? (那会有点复杂)。
  • 没有办法准确地解释我想要什么,因为这只是真正大问题的一部分。 @madflow 回答了我的问题,谢谢 :)
  • 我讨厌随机点击的页面...

标签: javascript jquery event-handling


【解决方案1】:

您可以在文档对象上安装根级事件处理程序来跟踪鼠标位置,这样您就可以知道鼠标在任何给定时间的位置。您可以使用本文中描述的代码在浏览器中创建事件:Is it possible to trigger a link's (or any element's) click event through JavaScript?,其信息来自本文:http://jehiah.cz/a/firing-javascript-events-properly

通常,创建原始事件并不是解决问题的最有效方法(除非您正在执行某种自动化测试)。通常最好直接调用您想要的函数或直接修改 DOM 对象,而不是尝试通过事件来导致更改。

【讨论】:

  • 跟踪鼠标位置对于找出悬停的元素不是一种非常可靠的方法,因为它必须循环遍历所有元素及其位置、偏移量、尺寸、z-index、父滚动每次尝试触发点击时的偏移量,因为这些可能会随着时间而改变。
  • @DavidHedlund - 每个鼠标事件都带有e.target,它告诉您鼠标事件最初针对的是哪个元素。这已经为您完成了。
  • 啊,当然,我被鼠标位置这句话弄得一头雾水,以为这就是你从中获取信息的地方。
【解决方案2】:

不,这不可能完全按照你描述的方式。

您可以收听mouseenter 的所有内容,并始终更新对上次悬停的任何内容的引用。

【讨论】:

  • 不幸的是,我想要我描述的方式。不过谢谢:)
  • 如果您收听mouseenter,您将获得对悬停元素的引用。
【解决方案3】:

您可以使用 mouseover/mouseout 跟踪元素并随时触发其点击处理程序

【讨论】:

  • 不幸的是,情况并非如此..没有办法知道鼠标在哪个元素上..无论如何谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-31
  • 2014-01-15
  • 2013-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多