隐藏后如何删除li空间?

时间:2012-02-28 09:03:27

标签: javascript jquery html css html-lists

如何隐藏li,并删除它的空间。 以下代码用于在图像之间传输,但在隐藏上一个li时,会出现空白区域。

<script type="text/javascript">
    $(document).ready(function () {
        var selectedIndex = 1;
        $("#slide" + selectedIndex + " img").fadeIn(500);
        $("ul.captios li").click(function () {
            var id = $(this).attr("id").split("_")[1];
            $("#slide" + selectedIndex + " img").fadeOut(500, function () {
                $("#slide" + id + " img").fadeIn(500);
                $("#slide" + selectedIndex).css("display:none;");
                selectedIndex = id;
            });

        });
    });
</script>

一个HTML

 <div id="gal-container">
        <div id="slides-wrapper">
            <ul class="slides">
                <li id="slide1"><img  class="hide" src="imgs/img1.jpg" /></li>
                <li id="slide2"><img  class="hide" src="imgs/img2.jpg" /></li>
            </ul>
        </div>

        <div id="caption-wrapper">
           <ul class="captios">
                <li id="caption_1"><a href="#">img1</a></li>
                <li id="caption_2"><a href="#">img2</a></li>
            </ul>
        </div>
    </div>

5 个答案:

答案 0 :(得分:4)

你为什么不用:

        $("#slide" + selectedIndex).hide();

...

甚至可能更好:

 $("#slide" + selectedIndex).fadeOut(500, function () {
      $("#slide" + id).fadeIn(500);
      selectedIndex = id;
 });

答案 1 :(得分:1)

您正在正确调用.css()。您可以传递一个字符串,这是CSS属性的名称,它将充当'getter',返回该属性的值。

或者你可以传递两个字符串,一个CSS属性的名称和一个值,它将充当'setter',将该属性设置为具有该值。

所以,而不是$("#slide" + selectedIndex).css("display:none;");你想要$("#slide" + selectedIndex).css("display", "none");

答案 2 :(得分:1)

您的代码中有错误。改变

$(“#slide”+ selectedIndex).css(“display:none;”);

$(“#slide”+ selectedIndex).css({display:'none'});或$(“#slide”+ selectedIndex).css('display','none');

http://api.jquery.com/css/

答案 3 :(得分:0)

你写的css部分错了:

$("#slide" + selectedIndex).css("display:none;"); // It will return the css 
                                                  //definition for display:none

请改用:

$("#slide" + selectedIndex).css('display', 'none')

hide函数完全相同的开箱即用:

$("#slide" + selectedIndex).hide();

答案 4 :(得分:0)

不知道这是不是你的问题,但是......这条线不正确:

$("#slide" + selectedIndex).css("display:none;");

应该是:

$("#slide" + selectedIndex).css('display', 'none');
// OR
$("#slide" + selectedIndex).hide();