0

ライトボックスを作成しましたが、正常に動作します。今、2 つのライトボックスを作成したいのですが、jquery を正しく取得できないようです。

2 つのライトボックスは同時に表示されません。それぞれ開く 2 つのリンクがあります。

<a href="#" class="lightbox1">Open box 1</a>
<a href="#" class="lightbox2">Open box 2</a>

最初のボックスにフォームがあり、2 番目のボックスにいくつかのコンテンツがあります。

HTML/CSS:

<div class="backdrop"></div> <--end of backdrop -->

<div id="wapper" class="centered">

<div class="box1">
<div class="close">x</div> <!--Close 'x' on the lightbox-->
<div class="clear"></div>  <!--CSS clear to correct flow -->
<form name="form1" id="form1">
...       
</form>
</div> <!--end of box1-->

<div class="box2">
<div class="close">x</div> <!--Close 'x' on the lightbox--> 
<div class="clear"></div> <!-- end of div clear -->
<div id="responce">
</div> <!-- end of div response [This is where the content goes after its fetched from mysql]-->
</div> <!-- end of box2 -->

</div><!--end of wapper -->

<style>
.backdrop
        {
            position:absolute;
            top:0px;
            left:0px;
            width:100%;
            height:100%;
            background:#000;
            opacity: .0;
            filter:alpha(opacity=0);
            z-index:50;
            display:none;
        }
        .box1, .box2
        {
            position:absolute;
            top:20%;
            left:30%;
            width:500px;
            height:300px;
            background:#ffffff;
            z-index:51;
            padding:10px;
            -webkit-border-radius: 5px;
            -moz-border-radius: 5px;
            border-radius: 5px;
            -moz-box-shadow:0px 0px 5px #444444;
            -webkit-box-shadow:0px 0px 5px #444444;
            box-shadow:0px 0px 5px #444444;
            display:none;
        }
        .close
        {
            float:right;
            margin-right:6px;
            cursor:pointer;
        }
</style>

js/jquery:

<script type="text/javascript">
            $(document).ready(function(){

              if ($('lightbox1').click(function()) {
         $('.backdrop,box1').animate({'opacity':'.50'}, 300, 'linear');
                    $('box1').animate({'opacity':'1.00'}, 300, 'linear');
                    $('.backdrop, box1').css('display', 'block');

                 $('.close').click(function(){
                    close_box($('.box1'));
                  });

                  $('.backdrop').click(function(){
                    close_box($('.box1'));
                });
          }
          else if($('lightbox2').click(function()){
        $('.backdrop, box2').animate({'opacity':'.50'}, 300, 'linear');
                    $('box2').animate({'opacity':'1.00'}, 300, 'linear');
                    $('.backdrop, box2').css('display', 'block');

                $('.close').click(function(){
                    close_box($('.box2'));
                });
           }
            });

            function close_box(box)
            {
                $('.backdrop, <box>').animate({'opacity':'0'}, 300, 'linear', function(){
                    $('.backdrop, <box>').css('display', 'none');
                });
            }
        </script>

私はこのコードに2日間取り組んでおり、何が問題なのかを理解しようとしています.誰か助けてください. if条件は、問題を引き起こしているものです。また、閉じるボタンが機能していません - パラメータを渡すにはどうすればよいですか?

ありがとう!

#

それで、ライトボックスを機能させることができました.jQuery / Javascript:

$(document).ready(function(){
            $('.lightbox1').click(
            function() {
                $('.backdrop, .box1').animate({'opacity':'.50'}, 300, 'linear');
                $('.box1').animate({'opacity':'1.00'}, 300, 'linear');
                $('.backdrop, .box1').css('display', 'block');

                $('.close').click(function(){
                    close_box($(".box1"));
                });

                $('.backdrop').click(function(){
                    close_box($(".box1"));
                });
            });

            $('.lightbox2').click(
            function(){
                $('.backdrop, .box2').animate({'opacity':'.50'}, 300, 'linear');
                $('.box2').animate({'opacity':'1.00'}, 300, 'linear');
                $('.backdrop, .box2').css('display', 'block');

                $('.close').click(function(){
                    close_box($(".box2"));
                });
            });             

        });

close_box() 関数はまだ機能していません。パラメータが正しく渡されていません。

4

1 に答える 1

3

私はあなたのセレクターについて混乱しています。使用するの$('<lightbox1>').clickではなく$('.lightbox1').click、クラスに一致する要素を選択します。

同じことが関数にも当てはまります-変​​数として使用$('.backdrop, <box>')したいので、そうするでしょうclose_box()box$('.backdrop, ' + box).animate(

于 2012-06-11T14:50:53.293 に答える