Skip to content

Commit 720bdb8

Browse files
committed
Store last mouse position in a variable instead of document datastore
It's hundred times faster. See http://jsperf.com/data-vs-variable
1 parent 96657a1 commit 720bdb8

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

select2.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
return;
4141
}
4242

43-
var KEY, AbstractSelect2, SingleSelect2, MultiSelect2, nextUid, sizer;
43+
var KEY, AbstractSelect2, SingleSelect2, MultiSelect2, nextUid, sizer, lastMousePosition;
4444

4545
KEY = {
4646
TAB: 9,
@@ -163,7 +163,7 @@
163163
}
164164

165165
$(document).delegate("body", "mousemove", function (e) {
166-
$.data(document, "select2-lastpos", {x: e.pageX, y: e.pageY});
166+
lastMousePosition = {x: e.pageX, y: e.pageY};
167167
});
168168

169169
/**
@@ -174,7 +174,7 @@
174174
*/
175175
function installFilteredMouseMove(element) {
176176
element.bind("mousemove", function (e) {
177-
var lastpos = $.data(document, "select2-lastpos");
177+
var lastpos = lastMousePosition;
178178
if (lastpos === undefined || lastpos.x !== e.pageX || lastpos.y !== e.pageY) {
179179
$(e.target).trigger("mousemove-filtered", e);
180180
}

0 commit comments

Comments
 (0)