2011-09-26 75 views
4

我想下面简单的代码(HTML中使用IE8的JS):如何以编程方式在javascript中触发dblclick事件?

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

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

而当我在图像上点击鼠标时,会收到警报消息。 所以我想知道如何以编程方式触发dblclick事件(实际上没有双击图像)。

对于onclick(而不是在dblclick),这同样适用。 我也试过按钮,输入文本。同样的错误。

回答

7

属性名称是ondblclick,但您正试图拨打dblclick。您需要拨打ondblclick

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

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

+0

谢谢,现在的工作。 – user965297

0

退房的MDN文章从MDN约element.dispatchEvent

示例代码:

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泡沫跟踪事件,使确定它没有被取消。

2

试试这个:

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

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

相关问题