2015-05-05 4 views
7

Мне нужно определить mouseup событие после mousedown на документе.mouseup event on document.documentElement не срабатывает с предупреждением

Я попытался добавить слушателя событий в document и document.documentElement без каких-либо успехов.

Мне нужно, возможно, кросс-платформенное решение без jquery. Примечания: проблема возникает не во всех браузерах с использованием alert().

http://jsfiddle.net/0f7vrzh7/8/

document.documentElement.addEventListener('mousedown', function(){ 
alert('mousedown'); 
}); 

document.documentElement.addEventListener('mouseup', function(e){ 
alert('mouseup') 
}); 
+0

Попробуйте на элемент тела – wallop

+3

попробовать console.log вместо предупреждения, это работает отлично !!. – Moussawi7

ответ

6

В некоторых браузерах первое предупреждение остановит второе событие. Он работает даже с alert в IE11, например. В браузерах, где вы испытываете эту проблему, окно предупреждения блокирует пользовательский интерфейс перед тем, как событие mouseup обрабатывается или распространяется на элемент, к которому подключен обработчик событий. Измените на console.log() заявления в обработчиках событий, и события будут запущены, как вы ожидаете. Updated fiddle.

+0

Спасибо за ваш ответ .... У вас есть идея, почему второе предупреждение останавливается на некоторых браузерах? – GibboK

+0

@GibboK Я обновил ответ. –

+2

Console.log всегда лучше предупреждений. Они не останавливают пользовательский интерфейс и не болят, если вы забудете их удалить. –

5

это ваше предупреждение блокирует событие mouseup. попробуйте

document.documentElement.addEventListener('mousedown', function(){ 
    document.getElementById("test").style.backgroundColor = "#ff0"; 
}); 

document.documentElement.addEventListener('mouseup', function(e){ 
    alert('mouseup') 
}); 

http://jsfiddle.net/0f7vrzh7/16/