IE9 Mousemove событие не срабатывает во время Mousepress - PullRequest
4 голосов
/ 09 сентября 2011

Когда я щелкаю левой кнопкой мыши и перетаскиваю мышь, IE9 не распознает событие mousemove. Мне нужно знать, где находится мышь, когда она перемещается в нажатом состоянии.

Другие браузеры работают отлично.

Вот суть моего кода:

<html>
<head>
<title>IE9 Failure</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
</head>
<body>
<div id="imgDiv"><img src="http://upload.wikimedia.org/wikipedia/en/1/1e/C.s.lewis3.JPG" alt="C.S. Lewis" /></div>
<div id="logger"></div>

<script>
$('#imgDiv').mousemove(displayMouseXYPos);
$('img').mousedown(function(event)
{
event.preventDefault();
});
var i = 0;
function displayMouseXYPos(e)
{
if (!e) var e = window.event; 
var x = e.clientX + document.body.scrollLeft;
var y = e.clientY + document.body.scrollTop;
i++;
$('#logger').html(i + ') ' + x + ',' + y);
}
</script>
</body>
</html>

Просто нажмите и перетащите курсор мыши на изображение. Наблюдайте за считыванием данных в div 'logger' в Chrome, FF, Safari, Opera и т. Д. Затем проверьте их в IE9. Как мне заставить IE9 вести себя как другие?

Большое спасибо!

Ответы [ 2 ]

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

Я добавил тег DOCTYPE в начало моего HTML-кода, и это решило проблему:

<!DOCTYPE html>
<html>
<head>
<title>IE9 Failure</title>
...

Спасибо всем, кто внес свой вклад.

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

Я проверил ваш код на моей машине с включенным режимом Compat и получил описанную вами проблему. Вероятно, в вашем браузере включен режим совместимости.

Добавьте следующий метатег на свою страницу, чтобы сообщить IE для рендеринга с использованием последней версии средства визуализации:

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

Этот тег также запрещает пользователю включать режим Compat для любой страницы, к которой он добавлен. Таким образом предотвращая их случайное повреждение.

...