在Mousepress期间IE9 Mousemove事件未触发

时间:2011-09-09 14:22:41

标签: javascript jquery internet-explorer-9 mousemove onmousedown

当我左键单击并拖动鼠标时,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>

只需在图像上单击并拖动鼠标即可。观察Chrome,FF,Safari,Opera等中“记录器”div中的数据读数。然后在IE9中查看。我如何让IE9像其他人一样行事?

非常感谢!

2 个答案:

答案 0 :(得分:0)

我在打开Compat模式的机器上测试了你的代码,并得到了你描述的问题。您的浏览器可能已打开兼容模式。

将以下元标记添加到您的页面,以告知IE使用最新的渲染器版本进行渲染:

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

此标记还将禁止用户为添加的任何页面打开Compat Mode。从而防止它们无意中导致它破裂。

答案 1 :(得分:0)

我将DOCTYPE标记添加到HTML代码的顶部并解决了问题:

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

感谢所有贡献的人。