【问题标题】:Jquery simulate a click on <div role = button>Jquery 模拟点击 <div role = button>
【发布时间】:2012-07-30 16:30:52
【问题描述】:

我需要使用 jquery 模拟单击​​按钮。

常规 Javascript MouseEvents(mousedown 和 mouseup)确实有效,但我想要 jquery。

我在 jquery 对象中有 div:(只是一个参考)

它被定义为

var $button = $(document.getElementById("iframe")...);

$button -> &lt;div id="1" class="2" role = "button"&gt;&lt;b&gt;Action&lt;/b&gt;&lt;/div&gt;

我尝试过使用$button.click()$button.trigger('click'),但两者都不起作用。

我已阅读 this,但没有提供此问题的答案。

【问题讨论】:

  • 你能发布更多代码吗? $('#foo').trigger('click');应该工作......
  • 需要更多关于您的 javascript 和 HTML 的上下文。
  • $('#foo').click() 也应该可以工作
  • 现在,我假设您的 $button 之前定义为 var $button = $('button'),对吗?在这种情况下,您触发点击就像您尝试使用触发器一样,或者只是 $('button').click();
  • 不,它不是这样的,它需要一个现有 HTML 页面的分割,在我的脚本之外执行一个操作。

标签: javascript jquery


【解决方案1】:

试试这个:

var e = document.createEvent("MouseEvents");
e.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
$button[0].dispatchEvent(e);

【讨论】:

  • jQuery 不会触发 dom2 方法附加的事件,抱歉。它只触发自己的事件。在某些情况下,由于对存在的原生 dom 元素调用 .click()/.submit() 方法而导致意外单击/提交 dom0 事件。
  • 我认为这是可悲的答案
猜你喜欢
  • 2019-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
相关资源
最近更新 更多