Мне просто интересно, почему click
событие происходит, когда я dbclick
элемент?
У меня есть этот код: ( JSBIN )
HTML
<p id="hello">Hello World</p>
JavaScript
document.getElementById('hello').addEventListener('click', function(e){
e.preventDefault();
this.style.background = 'red';
}, false);
document.getElementById('hello').addEventListener('dbclick', function(){
this.style.background = 'yellow';
}, false);
Он должен делать разные вещи для щелчка и двойного щелчка, но кажется, что когда вы дважды щелкаете по событию p
, то он ловит click
заранее и игнорирует двойной щелчок.
Я тоже пытался preventDefault
событие click
.
Как я могу слушать только dbclick
?
UPDATE
В моем коде была опечатка. dbclick
неверно. Это dblclick
. В любом случае проблема все еще существует. При двойном щелчке пользователя происходит событие click
.
Это обновленный код, подтверждающий это: ( JSBin )
document.getElementById('hello').addEventListener('click', function(e){
e.preventDefault();
this.style.background = 'red';
this.innerText = "Hello World clicked";
}, false);
document.getElementById('hello').addEventListener('dblclick', function(){
this.style.background = 'green';
}, false);