ボックスを非表示にするために(クリックして)ではなく、外側のボックスをクリックしたい。ただし、ボックスとリンクをクリックすると、ボックスをオンのままにします。ここの誰かが助けてくれることを願っています。本当にありがとう。君たちは最高です。ここにhttp://jsfiddle.net/hamdlink/y94nr/があります
<style>
ul li{
list-style: none;
}
.click-me{
display: inline;
}
.hidden{
display:none;
background: #333;
width:150px;
color:red;
padding:30px;
}
</style>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function(){
$('.click-me').click(function(){
$('.hidden').slideDown();
});
$('body').click(function(e){
if(e.target.className!=='click-me'){
$('.hidden').slideUp();
}
});
});
</script>
<ul>
<li class="click-me">click me
<ul class="hidden">
<li>Link 1</li>
<li>Link 2</li>
<li>Link 3</li>
<li>Link 4</li>
<li>Link 5</li>
<li>Link 6</li>
</ul>
</li>
</ul>
これを見つけました:要素の外側のクリックを検出するにはどうすればよいですか?
また、要素が非表示になっているかどうかを追跡する必要があるため、すぐに上にスライドすることはありません。これがフィドルです:http://jsfiddle.net/Fu8k4/1/
$(document).ready(function() {
var hidden = true;
$('.click-me').click(function() {
if (hidden){
$('.hidden').slideDown(400, function(){hidden = false;});
}
});
$('html').click(function() {
if (!hidden) {
$('.hidden').slideUp();
hidden=true;
}
});
$('.hidden, .click-me').click(function(event) {
event.stopPropagation();
});
});
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加