gpt4 book ai didi

javascript - Jquery...如果单击除特定 div 之外的其他位置则隐藏下拉菜单

转载 作者:行者123 更新时间:2023-11-28 13:47:24 24 4
gpt4 key购买 nike

我有一个下拉菜单,它将通过调用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();
});
}

但仍然不起作用...感谢您的帮助...我真的很感激

最佳答案

如何检查点击是否发生在 changeask div 内

$(document).click(function(e){
if($(e.target).closest('.changeask').length != 0) return false;
$('.changeask').hide();
});

关于javascript - Jquery...如果单击除特定 div 之外的其他位置则隐藏下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13264499/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com