基于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 dom 基本操作小结
Apr 11 Javascript
Javascript 函数parseInt()转换时出现bug问题
May 20 Javascript
针对初学者的jQuery入门指南
Aug 15 Javascript
第一次接触神奇的Bootstrap导航条
Aug 09 Javascript
jQuery时间日期三级联动(推荐)
Nov 27 Javascript
AngularJS实现网站换肤实例
Feb 19 Javascript
详解vuex 中的 state 在组件中如何监听
May 23 Javascript
详解如何在项目中使用jest测试react native组件
Feb 09 Javascript
微信小程序tabbar底部导航
Nov 05 Javascript
vue.js实现备忘录demo
Jun 26 Javascript
easyUI 实现的后台分页与前台显示功能示例
Jun 01 Javascript
逐行分析鸿蒙系统的 JavaScript 框架(推荐)
Sep 17 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
phpExcel中文帮助手册之常用功能指南
2014/08/18 PHP
phpStudy配置多站点多域名方法及遇到的403错误解决方法
2017/10/19 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
2018/10/12 PHP
[原创]网络复制内容时常用的正则+editplus
2006/11/30 Javascript
Javascript 跨域访问解决方案
2009/02/14 Javascript
JavaScript XML操作 封装类
2009/07/01 Javascript
JS中动态添加事件(绑定事件)的代码
2011/01/09 Javascript
微信小程序 less文件编译成wxss文件实现办法
2016/12/05 Javascript
BootStrap学习系列之布局组件(下拉,按钮组[toolbar],上拉)
2017/01/03 Javascript
jQuery插件HighCharts绘制2D半圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
浅谈es6语法 (Proxy和Reflect的对比)
2017/10/24 Javascript
bootstrap轮播模板使用方法详解
2017/11/17 Javascript
Vue 换肤的示例实践
2018/01/23 Javascript
开发用到的js封装方法(20种)
2018/10/12 Javascript
jQuery实现的鼠标拖动浮层功能示例【拖动div等任何标签】
2018/12/29 jQuery
CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】
2019/06/14 Javascript
微信小程序 导入图标实现过程详解
2019/10/11 Javascript
Vue混入mixins滚动触底的方法
2019/11/22 Javascript
浅谈vue中document.getElementById()拿到的是原值的问题
2020/07/26 Javascript
vue keep-alive的简单总结
2021/01/25 Vue.js
[28:05]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第一场 10月30日
2020/10/31 DOTA
python多线程操作实例
2014/11/21 Python
Python RuntimeError: thread.__init__() not called解决方法
2015/04/28 Python
编写多线程Python服务器 最适合基础
2018/09/14 Python
Python实现元素等待代码实例
2019/11/11 Python
html5使用canvas绘制太阳系效果
2014/12/15 HTML / CSS
使用phonegap创建联系人的实现方法
2017/03/30 HTML / CSS
大三自我鉴定范文
2013/10/05 职场文书
教育专业自荐书范文
2013/12/17 职场文书
国际贸易毕业生自荐书
2014/06/22 职场文书
岗位说明书怎么写
2014/07/30 职场文书
2014年中职班主任工作总结
2014/12/16 职场文书
2019最新校园运动会广播稿!
2019/06/28 职场文书
react中的DOM操作实现
2021/06/30 Javascript
MySQL千万级数据表的优化实战记录
2021/08/04 MySQL