基于JQuery的多标签实现代码


Posted in Javascript onSeptember 19, 2012

今天要分享的是基于JQuery实现的多标签的切换,JQuery就不用过多介绍了,网上一搜一大堆资料,当然这样的小示例也有很多,这里只是发表一些自己的想法。

下面是本次示例所使用的HTML页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>JQueryProject1</title> 
<meta name="author" content="Frank_Ren" /> 
<link type="text/css" rel="stylesheet" href="css/myCSS.css" /> 
<script type="text/javascript" src="js/jquery-1.8.1.min.js"></script> 
<script type="text/javascript" src="js/myJSFile.js"></script> 
<!-- Date: 2012-09-17 --> 
</head> 
<body> 
<div id="contenTab"> 
<ul> 
<li class="showTab"><a href="/">标签1</a></li> 
<li><a href="/">标签2</a></li> 
<li><a href="/">标签3</a></li> 
</ul> 
<div id="content"> 
<div class="showContent">这是内容1</div> 
<div>这是内容2</div> 
<div>这是内容3</div> 
</div> 
</div> 
</body> 
</html>

现在的页面还看不出有有标签的效果,所以为了使页面上出现标签效果,给一面添加一个CSS文件:
a{ 
display: block; 
text-decoration: none; 
color:white; 
} 
#contenTab ul{ 
list-style: none; 
padding:0px; 
margin:0px; 
} 
#content div.showContent{ 
line-height:100px; 
display: block; 
background-color:#B0C4DE; 
} 
.showTab{ 
background-color:#B0C4DE; 
border-bottom: 1px solid #B0C4DE; 
} 
div li{ 
background-color:#5F9EA0; 
border-bottom: 1px solid white; 
float: left; 
border-right: 1px solid white; 
color:black; 
height:30px; 
width:60px; 
line-height: 30px; 
text-align: center; 
} 
#content div{ 
background-color:#B0C4DE; 
display:none; 
clear: left; 
width:300px; 
height: 100px; 
}

到目前为止页面还只是静态页面,接下来就是最主要的的部分了,这部分就是实现通过鼠标移动来切换标签,实现动态页面,为了达到这个目的需要再添加一个JS文件,当然基于JQuery就必然少不了JQuery的JS文件,本示例使用的是最新的jquery-1.8.1.min.js,可以到JQuery的官网获得,下面是本次示例中实现标签切换的JS代码:
$(function(){ 
$("#contenTab li").each(function(){ 
var tab = $(this); 
var timeoutID; 
tab.hover(function(){ 
timeoutID = setTimeout(function(){ 
$(".showTab").removeClass("showTab"); 
$(".showContent").removeClass("showContent"); 
tab.addClass("showTab"); 
$($("#content div").get($("#contenTab li").index(tab))).addClass("showContent"); 
},300); 
},function(){ 
clearTimeout(timeoutID); 
}); 
}); 
});

到目前为止已经实现了多标签的切换。接下了记录下本次示例的几个注意事项:

1、为了实现当鼠标移到标签(也就是<li>)上让鼠标的形状变成手形,本次示例是通过将<li>里面的内容放在<a>里面来实现,当然还有跟简单的方法就是给<li>添加样式cursor: pointer;。

2、在JS代码中用到了var timeoutID = setTimeout(function,time),这是为了避免鼠标快速移动到来的误操作,time是延时的时间,function里面的就是延时time毫秒过后要执行的内容,也就是说鼠标移到标签上时不会实现立即切换的动作,而是要延时time毫秒过后才会响应切换的动作,如果鼠标在time毫秒之内离开了标签,就会执行clearTimeout(timeoutID),这样time毫秒之后就不会执行function里面的内容,这样就避免了鼠标快速移动带来的误操作。

今天就到这里了,希望对你会有所帮助。

Javascript 相关文章推荐
javascript document.images实例
May 27 Javascript
用 Javascript 验证表单(form)中多选框(checkbox)值
Sep 08 Javascript
jQuery LigerUI 使用教程表格篇(1)
Jan 18 Javascript
有关javascript的性能优化 (repaint和reflow)
Apr 12 Javascript
基于JavaScript实现网页倒计时自动跳转代码
Dec 28 Javascript
JavaScript html5 canvas画布中删除一个块区域的方法
Jan 26 Javascript
AngularJS 获取ng-repeat动态生成的ng-model值实例详解
Nov 29 Javascript
react高阶组件经典应用之权限控制详解
Sep 07 Javascript
JointJS流程图的绘制方法
Dec 03 Javascript
如何在项目中使用log4.js的方法步骤
Jul 16 Javascript
vue实现数字滚动效果
Jun 29 Javascript
解决antd Form 表单校验方法无响应的问题
Oct 27 Javascript
一样的table?不一样的table(可编辑状态table)
Sep 19 #Javascript
jQuery学习笔记 获取jQuery对象
Sep 19 #Javascript
jQuery学习笔记 更改jQuery对象
Sep 19 #Javascript
jQuery学习笔记 操作jQuery对象 文档处理
Sep 19 #Javascript
jQuery学习笔记 操作jQuery对象 属性处理
Sep 19 #Javascript
jQuery学习笔记 操作jQuery对象 CSS处理
Sep 19 #Javascript
firefox下jQuery UI Autocomplete 1.8.*中文输入修正方法
Sep 19 #Javascript
You might like
PHP中VC6、VC9、TS、NTS版本的区别与用法详解
2013/10/26 PHP
PHP Reflection API详解
2015/05/12 PHP
php字符串截取函数mb_substr用法实例分析
2019/06/25 PHP
让getElementsByName适应IE和firefox的方法
2007/09/24 Javascript
25个非常棒的jQuery滑块插件和教程小结
2011/09/02 Javascript
javascript获取设置div的高度和宽度兼容任何浏览器
2013/09/22 Javascript
禁用页面部分JavaScript不是全部而是部分
2014/09/03 Javascript
JavaScript中提前声明变量或函数例子
2014/11/12 Javascript
JS实现仿Windows7风格的网页右键菜单效果代码
2015/09/11 Javascript
vue 粒子特效的示例代码
2017/09/19 Javascript
ES6/JavaScript使用技巧分享
2017/12/14 Javascript
Vue中computed与methods的区别详解
2018/03/24 Javascript
详解Vue组件之作用域插槽
2018/11/22 Javascript
Nodejs实现用户注册功能
2019/04/14 NodeJs
layui实现二维码弹窗、并下载到本地的方法
2019/09/25 Javascript
angular组件间通讯的实现方法示例
2020/05/07 Javascript
在webstorm中配置less的方法详解
2020/09/25 Javascript
python if not in 多条件判断代码
2016/09/21 Python
详解Python字符串切片
2019/05/20 Python
numpy.linspace函数具体使用详解
2019/05/27 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
2019/06/21 Python
python 梯度法求解函数极值的实例
2019/07/10 Python
tensorflow将图片保存为tfrecord和tfrecord的读取方式
2020/02/17 Python
Python CSS选择器爬取京东网商品信息过程解析
2020/06/01 Python
Python将字典转换为XML的方法
2020/08/01 Python
Python生成并下载文件后端代码实例
2020/08/31 Python
Python批量获取并保存手机号归属地和运营商的示例
2020/10/09 Python
python中把元组转换为namedtuple方法
2020/12/09 Python
css3中新增的样式使用示例附效果图
2014/08/19 HTML / CSS
利用CSS3的border-radius绘制太极及爱心图案示例
2016/05/17 HTML / CSS
BLACKMORES澳洲官网:澳大利亚排名第一的保健品牌
2018/09/27 全球购物
2014年班组工作总结
2014/11/20 职场文书
内勤岗位职责范本
2015/04/13 职场文书
2015年行政部工作总结
2015/04/28 职场文书
文明旅游倡议书
2015/04/28 职场文书
2019毕业典礼主持词!
2019/07/05 职场文书