【问题标题】:onmousemove, what is being pass to event - javascriptonmousemove,传递给事件的内容 - javascript
【发布时间】:2017-10-31 01:45:17
【问题描述】:

我对 javascript 中的事件进行了多项研究,但仍然无法弄清楚 onmousemove 中传递给事件的内容。

摘自:W3schools

onmousemove="show_coords(event)"

这个事件参数是什么?我真的需要吗?或者我可以在没有这样的事件参数的情况下以某种方式使其工作:

onmousemove="show_coords()"

我尽一切努力让它在没有事件参数的情况下工作,但我认为我在这里遗漏了一些东西。

编辑:

这就是我在玩的东西。

是的 - 它工作正常,但我只是不明白为什么我需要事件以及使用鼠标坐标时它是什么

这个 >>> onmousemove="show_coords(event)"

到这个>>> onmousemove="show_coords()" 让它工作

为什么 (.clientX/Y, .pageX/Y, .screenX/Y) 需要该事件?有没有办法在没有它的情况下访问它们。

我尝试chaging “事件”参数每个事件词“this”

就像这样>>> 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>

【问题讨论】:

标签: javascript


【解决方案1】:

这个事件参数是什么

Event objects 是包含事件信息的对象(例如究竟是什么元素被用来触发它)和操作它的方法(例如,阻止它在 DOM 中冒泡)。

或者我可以在没有像这样的事件参数的情况下以某种方式使其工作

不需要对传递给事件处理函数的事件对象做任何事情。

如果您的 show_coords 函数依赖于它(重新编辑:确实如此),那么您需要传递它或找到其他方法来执行 show_coords 函数对它所做的任何事情。


我尝试将“事件”参数和每个事件词更改为“这个”,但这不起作用。为什么?

因为事件和事件处理程序绑定的元素是完全不同的东西。这是“约翰的威尔士之旅”和“约翰的车”之间的区别。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-07
    • 2018-04-13
    • 2021-10-29
    • 1970-01-01
    • 2014-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多