只传递jquery事件的某些属性

时间:2013-05-28 22:00:27

标签: javascript jquery

.on()的jquery文档说它适用于那些经常发生的事情,例如"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

1 个答案:

答案 0 :(得分:2)

这涉及JQuery的直接实现/ API。 我担心,为事件返回的任何内容都将在事件对象中返回。

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

根据该链接:

  

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

     

altKey,bubbles,button,cancelable,charCode,clientX,clientY,   ctrlKey,currentTarget,data,detail,eventPhase,metaKey,offsetX,   offsetY,originalTarget,pageX,pageY,prevValue,relatedTarget,   screenX,screenY,shiftKey,target,view,其中

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