Мне нужно безопасно определять, когда мышь покидает окно. У меня включен JQuery, поэтому обычно это будет хорошо:
$(document).on("mouseleave", function(event) {
doSomething();
});
Однако в Chrome есть серьезная ошибка , в которой эта функция mouseleave
запускается случайным образом при нажатии на элемент.
Как правило, это легко обойти:
$("#some-id").on("mouseleave", function(event) {
var e = event.originalEvent;
if (!e.relatedTarget || !e.toElement) {
// BUG in Chrome
return;
}
doSomething();
}
Однако , это не работает для document
или для любого элемента, когда мышь покидает окно, поскольку в этом случае e.relatedTarget
и e.toElement
равны нулю точно например, когда ошибка возникает . Поэтому я пытаюсь придумать что-то, что сможет безопасно определить, когда Chrome работает, и когда событие mouseleave действительно должно сработать.
Обновление: только что попробовал подход с mouseout
вместо. Та же ошибка Chrome влияет и на это событие, так что ничего хорошего. : /