如何隐藏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>
答案 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');
答案 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();