gpt4 book ai didi

javascript - jquery点击外部时隐藏div

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

我正在尝试设置 div 和 ul 的样式,使其功能类似于 .但是,我有一个问题:1)我只想切换我点击的ul并隐藏其他ul。所以我想知道jquery是否支持某些功能,例如“不点击”?2)我想当鼠标在外面点击时隐藏所有的ul。我做了一些研究,看到其他人使用 mouseup 或单击 body。但我不太确定它是如何工作的。

$(document).ready(function() {
$('.hide').each(function() {
$(this).hide();
});

$('.select').click(function() {
var id = '#' + $(this).attr('id');
var sub = id + '_sub';
$(sub).slideToggle();
});

$('body').mouseup(function() {
if($(this).length == 0) {
$(this).hide();
}
});
});
div.select {
display: inline-block;
margin: 10px;
padding: 20px;
background: red;
cursor: pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<div id="1" class="select">
<div class="main">
<span>1</span>
</div>
<div>
<ul id="1_sub" class="hide">
<li>1</li>
<li>2</li>
</ul>
</div>
</div>
<div id="2" class="select">
<div class="main">
<span>1</span>
</div>
<div>
<ul id="2_sub" class="hide">
<li>1</li>
<li>2</li>
</ul>
</div>
</div>

<div id="3" class="select">
<div class="main">
<span>1</span>
</div>
<div>
<ul id="3_sub" class="hide">
<li>1</li>
<li>2</li>
</ul>
</div>
</div>

</body>

最佳答案

给你: DEMO

$(document).ready(function() {
$('.hide').hide(); //hide in the beginning

$('.select').click(function() {
$('.hide').slideUp(200); //hide all the divs
$(this).find('.hide').slideDown(200); //show the one that is clicked
});
$(document).click(function(e){
if(!$('.select').is(e.target) || !$('.select').has(e.target)){ // check if the click is inside a div or outside
$('.hide').slideUp(200); // if it is outside then hide all of them
}
});
});

您可以定义您的 notClick() 函数,如下所示:

$.fn.notClicked= function(clickPosition){
if (!$(this).is(clickPosition.target) && $(this).has(clickPosition.target).length === 0){
return true;
}
else{
return false;
}
};

然后将其用作:

$(document).click(function(e){
alert($('.select').notClick(e)); // will return true if it is not clicked, and false if clicked
});

关于javascript - jquery点击外部时隐藏div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26825489/

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