Javascript 仅传递jquery事件的某些属性

Javascript 仅传递jquery事件的某些属性,javascript,jquery,Javascript,Jquery,.on()的jquery文档说,它可以很好地处理不经常发生的事情,例如“单击”(与非常繁重的事情相反,比如mousemove),它的处理成本会更高 $(document).ready(function () { $("body").on("mousemove", "#div1", function (event){ console.log(event); }); }); 当我做这个鼠标运动时,我看到jquery经过的事件,注意到它非常大。它包含了很多我可能永远不会使用的信息。是

.on()
的jquery文档说,它可以很好地处理不经常发生的事情,例如
“单击”
(与非常繁重的事情相反,比如
mousemove
),它的处理成本会更高

$(document).ready(function () {
  $("body").on("mousemove", "#div1", function (event){
    console.log(event);
  });
});
当我做这个鼠标运动时,我看到jquery经过的事件,注意到它非常大。它包含了很多我可能永远不会使用的信息。是否可以只传递该事件的某些部分,并降低处理鼠标移动或按键等操作的成本

 //somehow only pass these properties?
 var desired_events = ["clientX", "clientY", "offsetX", "offsetY"];

这涉及JQuery的直接实现/API。 很抱歉,任何要为事件返回的实现都将在事件对象中返回

见:

根据该链接:

以下属性也会复制到事件对象, 其某些值可能未定义,具体取决于事件

altKey、气泡、按钮、可取消、字符码、clientX、clientY、, ctrlKey、currentTarget、数据、详细信息、事件阶段、元键、偏移量、, offsetY、originalTarget、pageX、pageY、prevValue、relatedTarget、, screenX,screenY,shiftKey,target,view,哪个


因此,除非您使用JQuery的自定义实现,或者使用自己的JQuery实现/代码,否则我不知道如何使事件对象包含更少的内容。

否。JQuery将始终将所有属性放在其事件对象上,并且您无法抑制它。无论如何,这不应该为mousemove事件的昂贵负责。如果您有性能问题(并且只有在那时),请向我们展示您的实际代码。