小编Pas*_*tor的帖子

使用addEventListener在函数中添加事件作为参数(在FF/IE中不起作用).使用Javascript

<html>
<head>
<title>FML</title>

<script type="text/javascript">

function function1(e, div) {
div.innerHTML="this works"
document.getElementById('myspan').innerHTML= 'x-pos on click: ' + e.clientX
div.addEventListener("mousemove", function(){test(event, this)}, true);
}

function test(e, div) {
div.innerHTML+='<br/>so does this'
//This doesn't work. Can't add event as a parameter to function that has to be executed when using addEventListener
document.getElementById('myspan2').innerHTML= 'y-pos on move: ' + e.clientY
}

</script>
</head>
<body>
<span id="myspan">&nbsp;</span>
<span id="myspan2">&nbsp;</span>
<div style="width:100px;height:100px;background-color:blue;overflow:hidden;"  onclick="function1(event, this)">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

点击蓝色div.

我想添加事件mouseover,让它执行test() - 函数,该函数应该包含以下参数:this,event

当调用函数test(e,div)时,我不断在firefox和IE中遇到"event is undefined"错误,虽然具有讽刺意味的是它在Chrome和Safari中完美运行.

我可以通过addEventListener添加事件参数的任何方式吗?我可以在chrome和safari中使用window.event,但这是我想要的确切设置.我已经谷歌搜索和试用/错误一段时间了,没有成功...所以FML:/任何提示/提示/ ...除了拍摄自己的头部?

我知道jquery可能会解决所有这些问题,但我想在迁移到jQuery之前精通javascript.或者我应该迁移吗? …

javascript-events addeventlistener

8
推荐指数
1
解决办法
1万
查看次数