首页 > 解决方案 > 如何以编程方式单击元素并将单击事件发送到另一个函数?

问题描述

我有一种情况,点击的响应是这样处理的:

//File A
$(document).on("click", function(evt) {
    if (validateEvent(evt)) {submitEvent(evt.target); return(false);};
});

我需要以编程方式单击文档上的元素:

//File B
$('#myButton').click();

但不幸的是.click()on 元素不会触发$(document).on("click")代码,只会触发元素的点击处理程序。

我怎么可能

  1. 单击元素,捕获该事件,然后将事件发送到validateEvent()函数。
  2. 在元素上创建一个单击事件以发送到validateEvent() 函数。
  3. 触发文档的点击处理程序并告诉它该事件属于该#myButton元素?

标签: javascriptjqueryonclick

解决方案


您可以使用dispatchEvent在元素 #myButton 上调度事件,如下所示:

var clickEvent = new Event('click');
$('#myButton')[0].dispatchEvent(clickEvent);

推荐阅读