Jquery将显示页面上的所有灯箱

时间:2014-11-28 20:53:04

标签: javascript php jquery html css

我已经制作了一个简单的Lightbox,它会弹出并显示图像,但是当涉及到PHP的东西时,它会被连线。它会打开我所有拥有类灯箱的div。

使用Javascript:

$('.lightbox').click(function(){
$('.spate').animate({'opacity':'.50'}, 1000 , 'linear');
$('.box').animate({'opacity':'1.00'}, 1000 , 'linear');
$('.spate, .box').css('display','block');
});
$('.inchide').click(function(){
$('.spate, .box').animate({'opacity':'.0'}, 500 , 'linear', function(){
$('.spate, .box').css('display','none');
});  
});
$('.spate').click(function(){
$('.spate, .box').animate({'opacity':'.0'}, 500 , 'linear', function(){
$('.spate, .box').css('display','none');
});
});

PHP / HTML:

while($row=mysql_fetch_array($query){
$post_image= $row['post_image'];
<?php if(!$post_image=="") echo '
<a class="lightbox" href="#"><img src="img/'.$post_image.'"></a>
<div class="spate"></div>
<div class="box"><div class="inchide">X</div> <img src="img/'.$post_image.'"></div>
';
}

问题是当我在页面上有多个图像时,如果单击其中一个图像,特别是所有图像都会出现一个灯箱。我无法打开灯箱只是为了点击图像。

2 个答案:

答案 0 :(得分:0)

while($row=mysql_fetch_array($query){
$post_image= $row['post_image'];
<?php if(!$post_image=="") echo '
<div> <!--add all of that in div for each one-->
<a class="lightbox" href="#"><img src="img/'.$post_image.'"></a>
<div class="spate"></div>
<div class="box"><div class="inchide">X</div> <img src="img/'.$post_image.'"></div>
<div>
';
}

并像那样使用

$(document).ready(function(){
    $('.lightbox').click(function(){
    $(this).parent().find('.spate').animate({'opacity':'.50'}, 1000 , 'linear');
    $(this).parent().find('.box').animate({'opacity':'1.00'}, 1000 , 'linear');
    $(this).parent().find('.spate, .box').css('display','block');
    });
    $('.inchide').click(function(){
    $(this).parent().parent().find('.spate, .box').animate({'opacity':'.0'}, 500 , 'linear', function(){
    $(this).parent().parent().find('.spate, .box').css('display','none');
    });  
    });
    $('.spate').click(function(){
    $(this).parent().find('.spate, .box').animate({'opacity':'.0'}, 500 , 'linear', function(){
    $(this).parent().find('.spate, .box').css('display','none');
    });
    });
});

答案 1 :(得分:0)

您需要选择特定项目而不是一类项目:

$('.lightbox').click(function(){ $(this).next('.spate').animate({'opacity':'.50'}, 1000 , 'linear').css('display','block'); $(this).next('.box').animate({'opacity':'1.00'}, 1000 , 'linear').css('display','block'); });