1
0
mirror of synced 2024-11-26 23:06:02 +03:00

delay creation of mask until opening.

This commit is contained in:
Igor Vaynberg 2013-02-11 22:16:12 -08:00
parent 2d97b78fc6
commit 8868d59176

View File

@ -596,25 +596,6 @@ the specific language governing permissions and limitations under the Apache Lic
// cache the body so future lookups are cheap // cache the body so future lookups are cheap
this.body = thunk(function() { return opts.element.closest("body"); }); this.body = thunk(function() { return opts.element.closest("body"); });
// create the dropdown mask if doesnt already exist
mask = $("#select2-drop-mask");
if (mask.length == 0) {
mask = $(document.createElement("div"));
mask.attr("id","select2-drop-mask").attr("class","select2-drop-mask");
mask.hide();
mask.appendTo(this.body());
mask.bind("mousedown touchstart", function (e) {
var dropdown = $("#select2-drop"), self;
if (dropdown.length > 0) {
self=dropdown.data("select2");
if (self.opts.selectOnBlur) {
self.selectHighlighted({noFocus: true});
}
self.close();
}
});
}
syncCssClasses(this.container, this.opts.element, this.opts.adaptContainerCssClass); syncCssClasses(this.container, this.opts.element, this.opts.adaptContainerCssClass);
this.container.css(evaluate(opts.containerCss)); this.container.css(evaluate(opts.containerCss));
@ -1100,7 +1081,24 @@ the specific language governing permissions and limitations under the Apache Lic
this.updateResults(true); this.updateResults(true);
// create the dropdown mask if doesnt already exist
mask = $("#select2-drop-mask"); mask = $("#select2-drop-mask");
if (mask.length == 0) {
mask = $(document.createElement("div"));
mask.attr("id","select2-drop-mask").attr("class","select2-drop-mask");
mask.hide();
mask.appendTo(this.body());
mask.bind("mousedown touchstart", function (e) {
var dropdown = $("#select2-drop"), self;
if (dropdown.length > 0) {
self=dropdown.data("select2");
if (self.opts.selectOnBlur) {
self.selectHighlighted({noFocus: true});
}
self.close();
}
});
}
// ensure the mask is always right before the dropdown // ensure the mask is always right before the dropdown
if (this.dropdown.prev()[0] !== mask[0]) { if (this.dropdown.prev()[0] !== mask[0]) {