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、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 実装/コードを独自のものでオーバーライドしない限り、イベント オブジェクトの内容を少なくする方法がわかりません。

于 2013-05-28T22:11:03.233 に答える