如何以编程方式在javascript中触发dbclick事件?

时间:2011-09-26 15:20:30

标签: javascript html events

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

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

我得到一个错误:对象不支持此属性或方法(关于脚本部分)。我没有得到警报。

当我点击图片时,我收到了提醒信息。 所以我想知道如何以编程方式触发dblclick事件(实际上没有双击图像)。

使用onclick(而不是dblclick)也能正常工作。 我也尝试了按钮,输入文字。同样的错误。

3 个答案:

答案 0 :(得分:7)

属性名称为ondblclick,但您尝试拨打dblclick。您需要致电ondblclick

<script>
  document.getElementById('aa').ondblclick(); 
</script>

小提琴:http://jsfiddle.net/frwpY/

答案 1 :(得分:2)

试试这个:

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

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

答案 2 :(得分:0)

查看有关element.dispatchEvent

的MDN文章

来自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气泡跟踪事件,并确保它未被取消。