假"单击"以激活oncl​​ick方法

yoa*_*avf 46 javascript event-handling

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

我想在另一个函数中激活该方法(或者:假设点击此元素).

这可能吗?

Ben*_*Ben 65

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

document.getElementById('link').click();
Run Code Online (Sandbox Code Playgroud)

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

我不记得这是否适用于IE,但它应该.我附近没有窗户机器.


Edu*_*añó 59

如果你正在使用JQuery,你可以这样做:

$('#elementid').click();
Run Code Online (Sandbox Code Playgroud)

  • 该课题不要求JQuery答案.此外,vanilla语法实际上是相同的,但无疑更快. (10认同)
  • 放松伙计,问题是在 2008 年,浏览器之间的不一致行为很常见,jquery 被大量使用来填补这些空白。从那时起,浏览器已经取得了长足的进步。 (3认同)
  • 它无法触发html选择元素onClick事件下拉选择的选项,为什么? (2认同)
  • $('#elementid').触发器("click"); (2认同)
  • 我需要一个新厨房-我将为此打电话给jQuery。 (2认同)

Tom*_*Tom 7

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

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
}
Run Code Online (Sandbox Code Playgroud)

现在,只要单击此元素,代码clickHandler就会执行.类似地,您可以通过在其他函数的上下文中调用函数来执行相同的代码(甚至可以指定clickHandler处理由其他元素触发的事件)>


Jon*_*ski 5

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");
}
Run Code Online (Sandbox Code Playgroud)

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


rin*_*t.6 5

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

element.trigger('click');
Run Code Online (Sandbox Code Playgroud)

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


Nik*_*aut 5

使用javascript您可以触发click()focus()像下面的示例一样

document.addEventListener("click", function(e) {
  console.log("Clicked On : ",e.toElement);
},true);
document.addEventListener('focus',function(e){
  console.log("Focused On : ",e.srcElement);
},true);

document.querySelector("#button_1").click();
document.querySelector("#input_1").focus();
Run Code Online (Sandbox Code Playgroud)
<input type="button" value="test-button" id="button_1">
<input type="text" value="value 1" id="input_1">
<input type="text" value="value 2" id="input_2">
Run Code Online (Sandbox Code Playgroud)