假“点击”来激活一个onclick方法

我有一个onclick方法的元素。

我想在另一个函数中激活这个方法(或者:在这个元素上点击一下)。

这可能吗?

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

$('#elementid').click(); 

一旦你select了一个元素,你可以调用click()

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

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

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

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

 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将执行。 同样,你可以通过在其他函数的上下文中调用函数来执行相同的代码(甚至可以指定clickHandler来处理由其他元素触发的事件)>

@ Vilx-

Firefox使用element.dispatchEvent

该页面包含一个示例simulateClick()

如果你使用的是jQuery,你需要使用.trigger函数,所以它会是这样的:

 element.trigger('click'); 

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

这是一个很好的例子,你应该使用像Prototype或JQuery这样的JavaScript库来抽象出跨浏览器的差异。

只要打电话“onclick”!

这里是一个例子html:

 <div id="c" onclick="alert('hello')">Click me!</div> <div onclick="document.getElementById('c').onclick()">Fake click the previous link!</div> 

对于IE有fireEvent()方法。 不知道这是否适用于其他浏览器。

我没有使用jQuery,但是IIRC,提到的第一个方法不会触发onclick处理程序。

如果你没有使用事件细节,我会直接调用相关的onclick方法。

使用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(); 
 <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"> 

您也可以尝试获取元素的onclick属性,然后传递给eval。 这应该工作,尽pipe在eval的大禁忌。 我在下面放了一个例子

 eval(document.getElementById('elementId').getAttribute('onclick'));