【问题标题】:Cannot fire a mousedown event with jquery无法使用 jquery 触发 mousedown 事件
【发布时间】:2013-09-07 18:32:59
【问题描述】:

我正在尝试使用 jquery 在http://translate.google.com 中模拟点击事件。为此,我使用以下代码加载了 jquery 文件:

var script = document.createElement("script");
script.src = "http://code.jquery.com/jquery-1.10.1.min.js";
document.body.appendChild(script);

然后我尝试使用选择器模拟点击元素,如下所示:

jQuery(".goog-inline-block.goog-flat-menu-button-caption").trigger("mousedown")

我也尝试了这个点击事件而不是 mousedown:

jQuery(".goog-inline-block.goog-flat-menu-button-caption").trigger("click")

它们都没有给出手动点击div的效果,即打开一个新的div。我附上了所需行为的 ss。

jquery 不工作的原因是什么?或者我怎样才能以任何其他方式模拟效果?

编辑:添加 jQuery 似乎是成功的,因为我可以使用 jQuery 方法来选择元素并更改它们的内容等。

【问题讨论】:

  • 我不确定我是否理解 - 您是否尝试使用 jQuery 触发对第三方网站的点击?
  • 我认为@RoryMcCrossan 是对的,它是您想要获得的iframe 吗?
  • 首先,click 是正确的触发方式。其次,你在写扩展吗?
  • @Behlül 你能添加更多关于“我正在从 chrome 开发者工具中尝试它”的详细信息吗?
  • @Archer 问题中的第一个代码 sn-p 用于将 jQuery 添加到页面。它实际上添加了 jQuery,您可以使用 jQuery 方法进行选择,您可以更改 html 元素的内容等,但是 jQuery 的事件触发机制由于某种原因不起作用。

标签: javascript jquery web


【解决方案1】:

解决方案是创建一个 MouseEvent 并将其分派给元素,如下所示:

var e1 = document.createEvent("MouseEvents");
e1.initMouseEvent("mousedown", true, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
jQuery('#gt-sl-gms')[0].dispatchEvent(e1)

似乎jQuery的事件机制使用了不同的调度系统,因为它不能触发监听函数,虽然我没有确认这个信息。

【讨论】:

  • 这在 IE 9 中不起作用!!关于跨浏览器解决方案的任何想法?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-23
  • 2011-02-20
  • 1970-01-01
  • 1970-01-01
  • 2013-03-19
  • 2023-03-17
相关资源
最近更新 更多