ボックスを非表示にするためのリンクではなく、ボックスの外側をクリックしたときにこのブラックボックスを非表示にする方法は?

グーズベリー

ボックスを非表示にするために(クリックして)ではなく、外側のボックスをクリックしたい。ただし、ボックスとリンクをクリックすると、ボックスをオンのままにします。ここの誰かが助けてくれることを願っています。本当にありがとう。君たちは最高です。ここに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>
Andreas Storvik Strauman

これを見つけました:要素の外側のクリックを検出するにはどうすればよいですか?

また、要素が非表示になっているかどうかを追跡する必要があるため、すぐに上にスライドすることはありません。これがフィドルです: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]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ