1
0
mirror of synced 2024-11-25 14:26:03 +03:00

Improve performance on text measuring

Signed-off-by: Igor Vaynberg <igor.vaynberg@gmail.com>
This commit is contained in:
creage 2012-06-16 22:14:46 +03:00 committed by Igor Vaynberg
parent 0ff41ca512
commit 65eb7c3404

View File

@ -40,7 +40,7 @@
return;
}
var KEY, AbstractSelect2, SingleSelect2, MultiSelect2, nextUid;
var KEY, AbstractSelect2, SingleSelect2, MultiSelect2, nextUid, sizer;
KEY = {
TAB: 9,
@ -202,26 +202,25 @@
}
function measureTextWidth(e) {
var sizer, width,
style = e.currentStyle || window.getComputedStyle(e, null);
sizer = $("<div></div>").css({
position: "absolute",
left: "-1000px",
top: "-1000px",
display: "none",
fontSize: style.fontSize,
fontFamily: style.fontFamily,
fontStyle: style.fontStyle,
fontWeight: style.fontWeight,
letterSpacing: style.letterSpacing,
textTransform: style.textTransform,
whiteSpace: "nowrap"
});
sizer.text(e.val());
$("body").append(sizer);
width = sizer.width();
sizer.remove();
return width;
var style = e.currentStyle || window.getComputedStyle(e, null);
if (!sizer){
sizer = $("<div></div>").css({
position: "absolute",
left: "-1000px",
top: "-1000px",
display: "none",
fontSize: style.fontSize,
fontFamily: style.fontFamily,
fontStyle: style.fontStyle,
fontWeight: style.fontWeight,
letterSpacing: style.letterSpacing,
textTransform: style.textTransform,
whiteSpace: "nowrap"
});
$("body").append(sizer);
}
sizer.text(e.val());
return sizer.width();
}
/**
@ -478,7 +477,7 @@
select2.opts.element
.removeData("select2")
.unbind(".select2")
.show();
.show();
}
},