如何在Javascript中以编程方式触发双击事件?

4
我将尝试以下简单的代码(在html中,使用IE8上的js):

我正在尝试以下简单的代码(在HTML中,使用IE8上的JS):

<input type="image" src="pic.jpg" id="aa" ondblclick="alert('aa');"/>
<script>
document.getElementById('aa').dblclick(); 
</script>

我得到一个错误:对象不支持此属性或方法(关于脚本部分)。而且我没有收到警报。
当我双击图片时,就会收到警告消息。 因此,我想知道如何以编程方式触发dblclick事件(而不实际双击图像)。
使用onclick(而不是ondblclick),同样可以正常工作。 我还尝试过按钮、输入文本。同样的错误。
3个回答

7
属性名称是ondblclick,但您试图调用dblclick。您需要调用ondblclick
<script>
  document.getElementById('aa').ondblclick(); 
</script>

Fiddle: http://jsfiddle.net/frwpY/


2

试试这个:

<input type="image" src="pic.jpg" id="aa" ondblclick="alert('aa');"/>
<script>
document.getElementById('aa').ondblclick(); 
</script>

http://jsfiddle.net/dnUZY/1/


0

查看 MDN 关于 element.dispatchEvent 的文章

来自 MDN 的示例代码:

function simulateClick() {
  var evt = document.createEvent("MouseEvents");
  evt.initMouseEvent("click", true, true, window,
    0, 0, 0, 0, 0, false, false, false, false, 0, null);
  var cb = document.getElementById("checkbox"); 
  var canceled = !cb.dispatchEvent(evt);
  if(canceled) {
    // A handler called preventDefault
    alert("canceled");
  } else {
    // None of the handlers called preventDefault
    alert("not canceled");
  }
}

这样你还可以通过DOM冒泡跟踪事件,并确保它没有被取消。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接