就是带星星的地方:
本来我就试试删了event行吗,后来发现ie不可以,别的可以
请问这是什么讲究?
<!DOCTYPE html>
<html>
<head>
<title>鼠标位置</title>
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
<script>
$(document).ready(function()
{
$(document).mousemove(f);
});
var f=function(event)//★★★★★★★★★★★★★★★★★★★★★★★★★★
{
$("span").text("X: " + event.pageX + ", Y: " + event.pageY);
};
</script>
</head>
<body>
<p>The mouse pointer position is at: <span></span></p>
</body>
</html>
把 function 参数里的 event 去掉之后,函数体里的 event 会尝试访问全局的 event 对象。但全局的 event 也就是 window.event
并不是一个标准属性,你看到 IE 里能访问到时因为 IE 里有支持这个,而且貌似现在只有 IE 支持这个。window.event
的详情可以看这里: https://msdn.microsoft.com/en-us/library...
event对象在ie中是全局的window.event。在FF中是做为句柄传入的argument.0。在ie中传去参数event则会默认创建window.event,该参数与FF的event刚好相同,所以容易让人混淆。
应该是别的不可以,IE可以吧
IE有一个全局的window.event对象,其他浏览器没有
IE:有window.event对象
FF:没有window.event对象。可以通过给函数的参数传递event对象。如onmousemove=doMouseMove(event)
解决方法:
function test(event) {
var event = event || window.event;
//do Something
}
// 楼主可以看下ie事件绑定的兼容
var f = function(e) {
var e = e || window.event;
$("span").text("X: " + e.pageX + ", Y: " + e.pageY);
}
ie:仅支持window.event
firefox:仅支持function(event
chrome:都支持