一个展开效果,如图
$(document).ready(function(){
var $category = $("ul li:gt(5):not(:last)");
$category.hide();
var $showMoreBtn = $("div.showMore > a");
$showMoreBtn.click(function(){
if ($category.is(":visible")) {
$category.hide();
$(this).find("span")
.css("background",url("url(../img/2.6/more_bg.png) no-repeat 0 0px"))
.text("显示全部品牌");
$("ul li").removeClass("promoted");
}else{
$category.show();
$(this).find("span") //在showMoreBtn这个对象本身里面找到span标签
.css("background","url(../img/2.6/more_bg.png) no-repeat 0 -13px")
.text("精简显示品牌");
$(".SubCategoryBox ul li a")
.filter(":contains('佳能'), :contains('尼康'), :contains('奥林巴斯')")
.addClass("promoted");
}
return false; //让超链接不会跳转到more.html上
})
})
<body>
<div class="SubCategoryBox">
<ul>
<li><a href="#">佳能</a></li>
<li><a href="#">索尼</a></li></li>
<li><a href="#">三星</a></li>
<li><a href="#">尼康</a></li>
<li><a href="#">松下</a></li>
<li><a href="#">卡西欧</a></li>
<li><a href="#">富士</a></li>
<li><a href="#">柯达</a></li>
<li><a href="#">宾得</a></li>
<li><a href="#">理光</a></li>
<li><a href="#">奥林巴斯</a></li>
<li><a href="#">明基</a></li>
<li><a href="#">爱国者</a></li>
<li><a href="#">其他品牌相机</a></li>
</ul>
<div class="showMore">
<a href="more.html"><span>显示全部品牌</span></a>
</div>
</div>
</body>
return false能阻止阻止显示全部品牌时不跳转,但是收起全部品牌时就跳转了。这是什么情况?
1)首先你要把click回调中的所有代码,注释掉,只保留return false,看是否正常
2)看浏览器控制台是否有错误提示
似乎
$(this).find("span").css("background",url("url(../img/2.6/more_bg.png) no-repeat 0 0px")).text("显示全部品牌");
这个有问题哦