Javascript - 触发操作或事件?

时间:2015-07-31 06:35:50

标签: javascript events dom triggers

我想在给定元素上触发任何可能的用户操作,例如:click, focus, mouseup, mousedown, keyup, keydown, etc...

是这样的:

element.onclick();
element.onfocus();
element.onsubmit();
element.onmouseover();
element.onkeyup();
element.onkeydown();

或者有更好的方法来实现这个目标?

谢谢

2 个答案:

答案 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.clickHTMLElement.prototype.focus等方法。他们为你处理所有这些。