我有一个下拉列表,它将通过调用blur()来关闭。如果您单击下拉菜单以外的其他位置,则应该关闭它。
现在我想添加一个函数,所以如果你点击其他地方,下拉列表仍然会被关闭,除非你单击名为<div class="changeask"></div>
的div
$(document).ready(function () {
$(document).delegate("*", "mousedown touchend", function (e) {
var target = $(e.target).closest("div.select2-container").get(0), attr;
if (target) {
$(document).find("div.select2-container-active").each(function () {
if (this !== target ) $(this).data("select2").blur();
});
} else {
target = $(e.target).closest("div.select2-drop").get(0);
var changeask = $("div.changeask");
$(document).find("div.select2-drop-active").each(function () {
if (this !== target && this !== changeask) $(this).data("select2").blur();
});
}
以下是我现在拥有的代码......我尝试了很多方法,但是一旦点击其他地方,它仍然会关闭。
有什么想法吗?
我尝试修改这样的代码:
$(document).ready(function () {
$(document).delegate("*", "mousedown touchend", function (e) {
var target = $(e.target).closest("div.select2-container").get(0), attr;
var changeask = $(e.target).closest('.changeask').length != 0;
if (target) {
$(document).find("div.select2-container-active").each(function () {
if (this !== target && this!== changeask ) $(this).data("select2").blur();
});
} else {
target = $(e.target).closest("div.select2-drop").get(0);
$(document).find("div.select2-drop-active").each(function () {
if (this !== target && this!== changeask) $(this).data("select2").blur();
});
}
但仍然没有效果......感谢您的帮助..我真的很感激