开发者

How to programmatically fire ondblclick event in javascript?

I am trying the following simple code (in html, using js on IE8):

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

and I get an error that: object doesn开发者_StackOverflow社区't support this property or method (regarding the script part). And I don't get the alert.

Whereas when I dblclick on the image, I get the alert message. So I wish to know how to programmatically fire the dblclick event (without actually double clicking the image).

The same works just fine with onclick (instead of on dblclick). I also tried it on button, input text. Same error .


The property name is ondblclick but you're attempting to call dblclick. You need to call ondblclick.

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

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


try this:

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

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


Check out MDNs article about element.dispatchEvent

Sample code from 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");
  }
}

This way you can also track the event through the DOM bubble and make sure it wasn't canceled.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜