gpt4 book ai didi

javascript - 防止模态中的元素用 jQuery 关闭模态?

转载 作者:行者123 更新时间:2023-11-28 19:18:55 26 4
gpt4 key购买 nike

我现在有一团乱七八糟的js,一堆不同的文件(继承的)中有太多的东西,而我在最后一个文件上遇到了麻烦。

我有一个包含表单的模态,除了选择框之外,一切正常。一旦用户单击选择框,它就会触发关闭函数。我已经尝试了我能记得的一切,但我不记得我想要做的事情的正确术语,所以我无法用谷歌搜索它。

Here's a quick fiddle

代码:

<div class="modal">
<select>
<option>Select an option</option>
<option>1</option>
<option>2</option>
</select>
</div>

还有 js:

$(document).click(function(){
if(!$(event.target).is(".modal")){
$(".modal").hide();
};
});

这通常适用于我放入其中的任何内容,除了选择框。

更新:好的,所以我对这个问题完全错误,并在测试中做出了一些错误的假设。这与选择框无关,而是与 jQuery datepicker-ui 选择相关。所以这个问题是 Stackoverflow 上其他几个问题的重复,可以作为重复问题关闭。我发现的重复问题之一是:Implementing jQuery DatePicker in Bootstrap modal

最佳答案

event.target指的是事件起源的元素,因此当您单击 select 元素时,e.targetselect 元素,然后 $(event.target).is(".modal") 测试将失败。

因此,解决方案是检查事件的目标是否位于可以使用 .closest().modal 元素内。如下

$(document).click(function(){
if(!$(event.target).closest(".modal").length){
$(".modal").hide();
};
});

演示:Fiddle

关于javascript - 防止模态中的元素用 jQuery 关闭模态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29270887/

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