我有一个带onclick方法的元素.
我想在另一个函数中激活该方法(或者:假设点击此元素).
这可能吗?
选择元素后,可以调用click()
document.getElementById('link').click();
请参阅:https://developer.mozilla.org/En/DOM/Element.click
我不记得这是否适用于IE,但它应该.我附近没有窗户机器.
如果你正在使用JQuery,你可以这样做:
$('#elementid').click();
我可能会误解你的问题,但是,是的,这是可能的.我这样做的方式是这样的:
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
处理由其他元素触发的事件)>
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上的示例函数。