开发者

How to programmatically fire ondblclick event in javascript?

开发者 https://www.devze.com 2023-04-07 22:58 出处:网络
I am trying the following simple code (in html, using js on IE8): <input type=\"image\" src=\"pic.jpg\" id=\"aa\" ondblclick=\"alert(\'aa\');\"/>

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

精彩评论

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