假“单击”以激活 onclick 方法

IT技术 javascript event-handling
2021-03-15 07:51:03

我有一个带有onclick方法的元素

我想在另一个功能中激活该方法(或:假点击此元素)。

这可能吗?

6个回答

选择元素后,您可以调用 click()

document.getElementById('link').click();

请参阅:https : //developer.mozilla.org/En/DOM/Element.click

我不记得这是否适用于 IE,但应该可以。我附近没有windows机器。

如果您使用的是 JQuery,您可以执行以下操作:

$('#elementid').click();
它无法触发下拉选择选项的 html 选择元素 onClick 事件,为什么?
2021-04-23 07:51:03
我需要一个新厨房——我会为此调用 jQuery。
2021-05-06 07:51:03
问题不要求 JQuery 答案。此外,vanilla 语法实际上是相同的,但无疑更快。
2021-05-13 07:51:03
$('#elementid').trigger("点击");
2021-05-14 07:51:03
放轻松,问题是在 2008 年,跨浏览器的不一致行为很常见,jquery 被大量使用来填补这些空白。从那时起,浏览器已经取得了长足的进步。
2021-05-15 07:51:03

我可能会误解你的问题,但是,是的,这是可能的。我会去这样做的方式是这样的:

var oElement = document.getElementById('elementId');   // get a reference to your element
oElement.onclick = clickHandler; // assign its click function a function reference

function clickHandler() {
    // this function will be called whenever the element is clicked
    // and can also be called from the context of other functions
}

现在,只要单击此元素,clickHandler就会执行其中的代码同样,您可以通过从其他函数的上下文中调用该函数来执行相同的代码(甚至可以分配clickHandler处理其他元素触发的事件)>

如果你想在这个点击处理程序中使用“ev.target”,你可能会遇到问题......
2021-05-01 07:51:03

如果您使用 jQuery,则需要使用该.trigger函数,因此它类似于:

element.trigger('click');

http://api.jquery.com/trigger/

var clickEvent = new MouseEvent('click', {
  view: window,
  bubbles: true,
  cancelable: true
});
var element = document.getElementById('element-id'); 
var cancelled = !element.dispatchEvent(clickEvent);
if (cancelled) {
  // A handler called preventDefault.
  alert("cancelled");
} else {
  // None of the handlers called preventDefault.
  alert("not cancelled");
}

element.dispatchEvent所有主要浏览器都支持。上面的示例simulateClick()基于 MDN上的示例函数

2021-05-03 07:51:03
我在那里没有看到示例模拟点击()。为什么我们必须在这里复制东西,因为页面改变了。
2021-05-04 07:51:03
@JosephK - 在“示例”下,单击标题为“创建和触发事件”的链接,simulateClick()功能就在那里。
2021-05-17 07:51:03