javascript - 有没有一种简单的方法来保存鼠标事件的所有属性?

标签 javascript onclick mouseevent mouselistener

Javascript 新手,目前正在开发一个可保存浏览数据的 Chrome 扩展程序。是否有一些“包罗万象”的方法可以立即获取鼠标单击的所有属性?或者我只需要手动保存每个单独的属性?

目前,我正在执行后者并收集如下数据:

function saveClick(e)
{
  altKey = e.altKey;
  pageX = e.pageX;
  pageY = e.pageY;
  buttons = e.buttons;
}

有没有更简单的方法来完成这个任务?

最佳答案

您可以保存对象本身:

theEvent = e;

如果出于某种原因您不想这样做,您可以使用扩展表示法或Object.assign复制对象自己的属性:

// Property spread
theEvent = {...e};

// Or Object.asign
theEvent = Object.assign({}, e);

...但如果您发现某些属性是继承的访问器属性而不是对象自己的属性,我不会感到惊讶。

frobinsonj mentions ,您还可以使用解构,这样您只需列出属性一次。您的代码似乎在其他地方声明了这些变量,并且只是在函数内设置,您可以通过像这样的解构来完成:

({altKey, pageX, pageY, buttons} = e);

您需要 (),因为否则在语句上下文中,{ 会启动一个 block 。 (由于 var,frobinsonj 的示例不需要它们。)

关于javascript - 有没有一种简单的方法来保存鼠标事件的所有属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56529543/

相关文章:

javascript - 使用 API (Rails) 中的 Svelte 进行正确的错误处理

javascript - jQuery 单击处理程序仅触发一次

android - 单击按钮开始另一个 Activity

javascript - 使用 onclick 函数传递参数时,应将其读取为字符串,但将其读取为变量

c# - 引用多个实例化图片框

java - 未聚焦组件中的 KeyPressed 和 mousePressed 事件

javascript - 如何为单页应用程序重新排列 div

javascript - jquery表单验证器不支持ajax,我可以让jquery在没有ajax的情况下进行验证,反之亦然

javascript二叉搜索树实现

javascript - onclick 和 ondblclick 不能一起工作