假“单击”以激活oncl​​ick方法

时间:2008-12-07 12:12:29

标签: javascript event-handling

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

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

这可能吗?

11 个答案:

答案 0 :(得分:61)

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

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

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

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

答案 1 :(得分:60)

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

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

答案 2 :(得分: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
}

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

答案 3 :(得分:4)

@Vilx -

Firefox使用element.dispatchEvent

该页面包含示例simulateClick()

答案 4 :(得分:4)

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

element.trigger('click');

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

答案 5 :(得分:3)

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

答案 6 :(得分:2)

只需拨打“onclick”即可!

这是一个例子html:

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

答案 7 :(得分:2)

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

答案 8 :(得分:1)

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

如果您没有使用活动详情,我会直接调用相关的onclick方法。

答案 9 :(得分:1)

使用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">

答案 10 :(得分:-3)

您还可以尝试获取元素的onclick属性,然后传入eval。尽管在eval上有很大的禁忌,这应该可行。我在下面放了一个样本

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