3

我尝试在样式时删除类颜色框display:none

有人可以帮助我,谢谢

HTML

    <li class="portfolio-item" style="display: none;">
    <div class="item-image">
        <a class="colorbox cboxElement" href="http://www.monsite.fr/IMG_1423.jpg""></a>
    </div>
</li>
<li class="portfolio-item" style=" ">
    <div class="item-image">
        <a class="colorbox cboxElement" href="http://www.monsite.fr/IMG_1424.jpg""></a>
    </div>
</li>

jQuery

    jQuery(document).ready(function($){
$(".portfolio-item .item-image a[href$='.jpg']").colorbox({
    rel:"group2",
    maxWidth:"80%", 
    maxHeight:"80%"});


    if($('.portfolio-item').css('display') == 'none'){ 
       $('.portfolio-item').find(".item-image a[href$='.jpg']").removeClass('colorbox'); 
    } 

});

编辑

谢谢你的帮助,但我试过这个

jQuery(document).ready(function($){
    $(".portfolio-item .item-image a[href$='.jpg']").colorbox({
       rel:"group2",
    maxWidth:"95%", 
    maxHeight:"95%"});  

    $('li.portfolio-item').filter(':hidden').map(function() {
        $(this).find('a.colorbox').removeClass('colorbox');
    });     
});

但它不起作用。

4

2 回答 2

2

确保您的 href 属性被一组包围"

<a class="colorbox cboxElement" href="http://www.monsite.fr/IMG_1423.jpg"></a>


并尝试使用:hidden伪选择器来检测元素是否具有display:none;

if($('.portfolio-item:hidden').length){ 
   $('.portfolio-item').find(".item-image a[href$='.jpg']").removeClass('colorbox'); 
}


.each在投资组合项目上使用循环 可能是更好的方法:

$('.portfolio-item:hidden').each(function(){
    $(this).find(".item-image a[href$='.jpg']").removeClass('colorbox');
}

jQuery:隐藏

于 2013-06-14T12:31:33.427 回答
0

首先,修复你的标记。然后您可以执行以下操作:-

$('li.portfolio-item').filter(':hidden').map(function() {
  $(this).find('a.colorbox').removeClass('colorbox');
});
于 2013-06-14T12:40:32.740 回答