Разница между Ондблклик и Дблклик - PullRequest
2 голосов
/ 10 февраля 2012

Я читаю чей-то другой код javascript, указанный ниже

window.onload = function(){
  // Listen to the double click event.
  if ( window.addEventListener ) {
    document.body.addEventListener( 'dblclick', onDoubleClick, false );
  }
  else if ( window.attachEvent ) {
  /* attachEvent is Microsoft and addEventListener is W3C */
    document.body.attachEvent( 'ondblclick', onDoubleClick );
  }
}; 

Ответы [ 2 ]

2 голосов
/ 10 февраля 2012

Имя события - «dblclick», а свойство события (обработки) - «ondblclick».даже в IE само событие называется dblclick ( ref .)

0 голосов
/ 10 февраля 2012

С или без «вкл» это одно и то же событие.

Исторически при встроенной обработке событий с помощью атрибутов элементов использовались имена событий «on»:

<div id="div1" ondblclick="someFunction();">

При назначении обработчика событий в блоке сценария также используются имена «on»:

document.getElementById("div1").ondblclick = someFunction;

Метод Microsoft attachEvent() (IE8 и ниже) использовал имена событий «on»:

document.getElementById("div1").attachEvent("ondblclick", someFunction);

Но тогда основанные на стандартах .addEventListener (IE9 и другие браузеры) использовали не включенные имена событий:

document.getElementById("div1").addEventListener("dblclick",onDoubleClick,false);

Код, который вы процитировали, сначала проверяет, определен ли addEventListener, каким он будет для современных браузеров, включая IE9, а если нет, то пытается attachEvent, который будет определен в более старых версиях IE. (Иронично, что возникает проблема использования современных методов для события dblclick, но для старого .onload используется старый стиль.)

...