1

的 jquery 文档.on()说它对于不经常发生的事情非常有效,例如"click"(相对于事情很重,例如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"];

http://jsbin.com/ofawom/1/edit

4

1 回答 1

2

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

请参阅:http ://api.jquery.com/category/events/event-object/

根据该链接:

以下属性也被复制到事件对象,尽管它们的某些值可能未定义,具体取决于事件

altKey, 气泡, 按钮, 可取消, charCode, clientX, clientY, ctrlKey, currentTarget, data, detail, eventPhase, metaKey, offsetX, offsetY, originalTarget, pageX, pageY, prevValue, relatedTarget, screenX, screenY, shiftKey, target, view,哪个

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

于 2013-05-28T22:11:03.233 回答