我已经对 javascript 中的事件进行了一些研究,但仍然无法弄清楚 onmousemove 中传递给事件的内容是什么。
摘自:W3schools
onmousemove="show_coords(事件)"
这个事件参数是什么?我真的需要它吗?或者我可以以某种方式让它在没有事件参数的情况下工作,如下所示:
onmousemove="show_coords()"
我尝试了一切使其在没有事件参数的情况下工作,但我认为我在这里遗漏了一些东西。
编辑:
这就是我正在玩的东西。
是的 - 它工作正常,但我只是不明白为什么我需要事件以及使用鼠标坐标时它是什么
这个>>> onmousemove="show_coords(event)"
对此 >>> onmousemove="show_coords()" 并使其正常工作
为什么(.clientX/Y, .pageX/Y, .screenX/Y)需要该事件?有没有办法在没有它的情况下访问它们。
我尝试更改“事件”参数和每个事件词到“这个”
就像这样>>> onmousemove="show_coords(this)"
但这不起作用。为什么?
<!DOCTYPE html>
<html onmousemove="show_coords(event)" style="border-style: solid">
<head>
</head>
<body>
<p style="position : fixed; color :red; top: 50px" id="demo"></p>
<p style="position : fixed; color :blue ;top: 10px" id="demo2"></p>
<p style="position : fixed; top: 31px" id="demo3"></p>
<div style="height: 1000px"></div>
<script>
function show_coords(event)
{
var x=event.clientX;
var y=event.clientY;
var xa=event.pageX;
var ya=event.pageY;
var xb=event.screenX;
var yb=event.screenY;
document.getElementById('demo').innerHTML = "Client: x = " + x + " y = " + y;
document.getElementById('demo2').innerHTML = "Page: xa = " + xa + " ya = " + ya;
document.getElementById('demo3').innerHTML = "Screen: xb = " + xb + " yb = " + yb;
}
</script>
</body>
</html>
最佳答案
what is this event argument
Event objects是包含有关事件的信息(例如确切地使用哪个元素触发该事件)和操作该事件的方法(例如阻止其在 DOM 中冒泡)的对象。
Or I could somehow make it work without the event argument like this
不需要对传递到事件处理函数的事件对象执行任何操作。
如果您的 show_coords
函数依赖于它(重新编辑:确实如此),那么您需要传递它或找到其他方法来执行 show_coords
函数的任何操作用它来做。
I tried chaging the "event" argument and every event word to "this" but that doesn't work. Why?
因为事件和事件处理程序所绑定(bind)的元素是完全不同的东西。这就是“约翰的威尔士之旅”和“约翰的汽车”之间的区别。
关于javascript - onmousemove,传递给事件的内容 - javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44264688/