我想在给定元素上触发任何可能的用户操作,例如:click, focus, mouseup, mousedown, keyup, keydown, etc...
是这样的:
element.onclick();
element.onfocus();
element.onsubmit();
element.onmouseover();
element.onkeyup();
element.onkeydown();
或者有更好的方法来实现这个目标?
谢谢
答案 0 :(得分:2)
如果您想模拟用户生成的鼠标事件(例如点击次数),您可以采用以下方式:
<div id="someID" onclick="alert('a');">
test
</div>
<script>
var theElement = document.getElementById('someID')
, triggerEvent = function triggerEvent(event, element) {
var evObj = document.createEvent('MouseEvents');
evObj.initEvent(event, true, true);
element.dispatchEvent(evObj);
};
triggerEvent('click', theElement);
</script>
基本上你从元素生成一个事件,让处理程序处理它。 Here事件列表。
希望这可以提供帮助。
答案 1 :(得分:1)
在可能是函数的元素上有各种onevent
属性,您可以调用它们,但这样做,您将在DOM事件处理系统中进行路由。您必须自己将正确的Event对象传递给函数,并且它们不会自动冒泡到父元素。
我不确定如果元素的事件设置为addEventListener
并且您尝试直接调用其onevent
函数会发生什么。
继续使用HTMLElement.prototype.click
和HTMLElement.prototype.focus
等方法。他们为你处理所有这些。