1

DOM 要素をクリックするとフェードインするオーバーレイ div があります。ページの任意の場所 (div 自体を除く) をクリックしたときに閉じることができるようにしたいのですが、機能しません。コードは次のとおりです。

    //Script for showing the DIV called overlay.
       <script>
        $(function() {
            $('#loginfooter').click(function(){
                $('#overlay').fadeIn(200,function(){
                    $('#box').animate({'top':'20px'},'slow');


                });
                return false;
            });
            $('#boxclose').click(function(){
                $('#box').animate({'top':'-800px'},500,function(){
                    $('#overlay').fadeOut('fast');
                });
            });


        });
    </script>

//Script for hiding the div after clicking anywhere..
    <script>
        $(document).ready(function(){
            $('#overlay').on('click',function(ev){
                var myID = ev.target.id;
                if(myID!=='overlay'){
                    $('#box').animate({'top':'-800px'},500,function(){
                        $('#overlay').fadeOut('fast');
                    });
                }
            });
        });


    </script>
4

3 に答える 3

1

これを置き換えるだけです:

$('#overlay').on('click', function (ev) {

これとともに

$(document).on('click', function (ev) {

そしてさらに試みる....

overlay実際、要素をクリックしているとき、myID変数の値は常に== 'overlay'です。したがって、if ステートメント内には決して入りません。

于 2013-06-27T08:47:57.793 に答える