2009.12.17(4)——jquery例子 全部显示与精简显示

2009.12.17(4)——jquery例子 全部显示与精简显示
我希望的效果是,10个东西 我先显示6个,然后点击“全部显示”就把10个东西全部显示,这时,“全部显

示”按钮变为“精简显示”,再点击,就又会显示6个,如此反复
先看html代码
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 

"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>数码相机</title>
<style type="text/css">
*{ margin:0; padding:0;}
body {font-size:12px;text-align:center;}
a { color:#04D; text-decoration:none;}
a:hover { color:#F50; text-decoration:underline;}
.SubCategoryBox {width:600px; margin:0 auto; text-align:center;margin-top:40px;}
.SubCategoryBox ul { list-style:none;}
.SubCategoryBox ul li { display:block; float:left; width:200px; line-height:20px;}
.showmore { clear:both; text-align:center;padding-top:10px;}
.showmore a { display:block; width:120px; margin:0 auto; line-height:24px; border:1px solid

#AAA;}
.showmore a span { padding-left:15px; background:url(images/down.gif) no-repeat 0 0;}
.promoted a { color:#F50;}
</style>
</head>
<body>
<div class="SubCategoryBox">
<ul>
<li ><a href="#">佳能</a><i>(30440) </i></li>

<li ><a href="#">索尼</a><i>(27220) </i></li>
<li ><a href="#">三星</a><i>(20808) </i></li>
<li ><a href="#">尼康</a><i>(17821) </i></li>
<li ><a href="#">松下</a><i>(12289) </i></li>
<li ><a href="#">卡西欧</a><i>(8242) </i></li>

<li ><a href="#">富士</a><i>(14894) </i></li>
<li ><a href="#">柯达</a><i>(9520) </i></li>
<li ><a href="#">宾得</a><i>(2195) </i></li>
<li ><a href="#">理光</a><i>(4114) </i></li>
<li ><a href="#">奥林巴斯</a><i>(12205) </i></li>

<li ><a href="#">明基</a><i>(1466) </i></li>
<li ><a href="#">爱国者</a><i>(3091) </i></li>
<li ><a href="#">其它品牌相机</a><i>(7275) </i></li>
</ul>
<div class="showmore">
<a href="more.html"><span>全部显示品牌</span></a>

</div>
</div>
</body>
</html>

1.首先,隐藏一些li,比如说7个以后都隐藏,但是最后一个“其他相机”是不能隐藏的
var $hide = $('ul li:gt(5):not(:last)');
$hide.hide();

2.点击“全部显示”显示所有的
var $show = $('div.showmore > a');
$show.click(function(){
$hide.show();
});

3.把“全部显示”改为“精简显示”
$('.showmore a span').text("精简显示");

4.然后可以加点效果,比如说高亮显示一些品牌
$('ul li').filter(".contains('佳能')",":contains('爱国者')").addClass("promoted");

5.有个问题,大家会发现,因为那个“全部显示”是一个超链接,就会跳转到其他页面,所以,我们要给浏

览器返回一个false,这五步代码如下
$(function(){
var $hide = $('ul li:gt(7):not(:last)');
$hide.hide();//隐藏
var $show = $('div.showmore > a');
$show.click(function(){
$hide.show();//显示
//改变提示内容
$('.showmore a span').css("background","url(images/up.gif)no-repeat 0

0").text("精简显示品牌");
//高亮显示
$('ul li').filter(":contains('佳能'),:contains('柯达'),:contains('爱国

者')").addClass("promoted");
return false;//return false让浏览器认为用户没有单击该链接
});
})
6.然后,应该是单机“精简显示”,只显示一部分,但是,有个问题 我们点击的是同一个链接,这如何来区

分呢?我们可以根据是hide还是show来区分
if($hide.is(":visible")){}else{}//判断是否显示


jquery的全部代码如下:
<script type="text/javascript" src="scripts/jquery-1.3.2.js"></script>
<script type="text/javascript">
$(function(){
var $hide = $('ul li:gt(7):not(:last)');
$hide.hide();//隐藏
var $show = $('div.showmore > a');
$show.click(function(){
if($hide.is(":visible")){
$hide.hide();
$('.showmore a span').css("background","url(images/down.gif)no

-repeat 0 0").text("全部显示品牌");
//不高亮显示
$('ul li').removeClass("promoted");
}else{
$hide.show();//显示
//改变提示内容
$('.showmore a span').css("background","url(images/up.gif)no-

repeat 0 0").text("精简显示品牌");
//高亮显示
$('ul li').filter(":contains('佳能'),:contains('柯

达'),:contains('爱国者')").addClass("promoted");
}

return false;//return false让浏览器认为用户没有单击该链接
});
})

</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值