Как программно запустить событие ondblclick в javascript? - PullRequest
4 голосов
/ 26 сентября 2011

Я пытаюсь следующий простой код (в html, используя js на IE8):

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

и я получаю сообщение об ошибке: объект не поддерживает это свойство или метод (в части скрипта). И я не получаю предупреждение.

Принимая во внимание, что когда я нажимаю на изображение, я получаю сообщение с предупреждением. Поэтому я хочу знать, как программно запустить событие dblclick (без двойного щелчка по изображению).

То же самое отлично работает с onclick (вместо dblclick). Я тоже попробовал это на кнопке ввода текста. Та же ошибка.

Ответы [ 3 ]

7 голосов
/ 26 сентября 2011

Имя свойства ondblclick, но вы пытаетесь позвонить dblclick.Вам нужно позвонить ondblclick.

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

Скрипка: http://jsfiddle.net/frwpY/

2 голосов
/ 26 сентября 2011

попробуйте это:

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

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

0 голосов
/ 26 сентября 2011

Ознакомьтесь со статьей MDNs о 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 и убедиться, что оно не было отменено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...