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)
我可能会误解你的问题,但是,是的,这是可能的.我这样做的方式是这样的:
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处理由其他元素触发的事件)>
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上的示例函数。
如果您使用 jQuery,则需要使用该.trigger函数,因此它类似于:
element.trigger('click');
Run Code Online (Sandbox Code Playgroud)
http://api.jquery.com/trigger/
使用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)