1
0
mirror of synced 2024-11-23 05:26:10 +03:00

Merge pull request #635 from t0m/multi-select-dropdown

Fix for more than one multi-select being open at the same time
This commit is contained in:
Igor Vaynberg 2012-12-10 10:37:15 -08:00
commit ac4ce8b0eb

View File

@ -509,17 +509,20 @@ the specific language governing permissions and limitations under the Apache Lic
$document.ready(function () { $document.ready(function () {
$document.bind("mousedown touchend", function (e) { $document.bind("mousedown touchend", function (e) {
var target = $(e.target).closest("div.select2-container").get(0), attr; var target = $(e.target).closest("div.select2-container").get(0), attr;
var targetDropdown = null;
if (target) { if (target) {
$document.find("div.select2-container-active").each(function () { $document.find("div.select2-container-active").each(function () {
if (this !== target) $(this).data("select2").blur(); if (this !== target) $(this).data("select2").blur();
}); });
} else { targetDropdown = $(target).data('select2').dropdown.get(0);
target = $(e.target).closest("div.select2-drop").get(0);
$document.find("div.select2-drop-active").each(function () {
if (this !== target) $(this).data("select2").blur();
});
} }
// close any other active dropdowns
target = targetDropdown || $(e.target).closest("div.select2-drop").get(0);
$document.find("div.select2-drop-active").each(function () {
if (this !== target) $(this).data("select2").blur();
});
target=$(e.target); target=$(e.target);
attr = target.attr("for"); attr = target.attr("for");
if ("LABEL" === e.target.tagName && attr && attr.length > 0) { if ("LABEL" === e.target.tagName && attr && attr.length > 0) {