基于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 学习笔记一些小技巧
Mar 28 Javascript
jQuery中判断一个元素是否为另一个元素的子元素(或者其本身)
Mar 21 Javascript
js 浏览器事件介绍
Mar 30 Javascript
利用ajaxfileupload插件实现文件上传无刷新的具体方法
Jun 08 Javascript
gridpanel动态加载数据的实例代码
Jul 18 Javascript
Jquery 在页面加载后执行的几种方式
Mar 14 Javascript
JS案例分享之金额小写转大写
May 15 Javascript
jQuery内容折叠效果插件用法实例分析(附demo源码)
Apr 28 Javascript
Bootstrap fileinput组件封装及使用详解
Mar 10 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
Mar 21 Javascript
使用JS location实现搜索框历史记录功能
Dec 23 Javascript
Vue elementui字体图标显示问题解决方案
Aug 18 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
咖啡因含量是由谁决定的?低因咖啡怎么来?低因咖啡适合什么人喝
2021/03/06 新手入门
谈谈关于php的优点与缺点
2013/04/11 PHP
CodeIgniter配置之config.php用法实例分析
2016/01/19 PHP
Zend Framework教程之资源(Resources)用法实例详解
2016/03/14 PHP
PHP+Oracle本地开发环境搭建方法详解
2019/04/01 PHP
Nigma vs AM BO3 第一场2.13
2021/03/10 DOTA
JavaScript 检测浏览器和操作系统的脚本
2008/12/26 Javascript
javascript offsetX与layerX区别
2010/03/12 Javascript
关于JavaScript中var声明变量作用域的推断
2010/12/16 Javascript
Fastest way to build an HTML string(拼装html字符串的最快方法)
2011/08/20 Javascript
javascript针对DOM的应用分析(三)
2012/04/15 Javascript
图片无缝滚动代码(向左/向下/向上)
2013/04/10 Javascript
关于javaScript注册click事件传递参数的不成功问题
2014/07/18 Javascript
jquery限定文本框只能输入数字(整数和小数)
2016/01/08 Javascript
第一次接触神奇的前端框架vue.js
2016/12/01 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
2017/01/14 Javascript
Angular.JS通过指令操作DOM的方法
2017/05/10 Javascript
微信小程序自定义键盘 内部虚拟支付
2018/12/20 Javascript
JavaScript使用ul中li标签实现删除效果
2019/04/15 Javascript
[03:17]DOTA2英雄基础教程 剧毒术士
2013/12/12 DOTA
Python访问MySQL封装的常用类实例
2014/11/11 Python
python服务器与android客户端socket通信实例
2014/11/12 Python
C#返回当前系统所有可用驱动器符号的方法
2015/04/18 Python
python如何通过twisted实现数据库异步插入
2018/03/20 Python
Python基于百度云文字识别API
2018/12/13 Python
python3去掉string中的标点符号方法
2019/01/22 Python
PyQt编程之如何在屏幕中央显示窗体的实例
2019/06/18 Python
html5指南-5.使用web storage存储键值对的数据
2013/01/07 HTML / CSS
html5的自定义data-*属性与jquery的data()方法的使用
2014/07/02 HTML / CSS
英国标志性奢侈品牌:Burberry
2016/07/28 全球购物
矿泉水广告词
2014/03/20 职场文书
《英英学古诗》教学反思
2014/04/11 职场文书
海上钢琴师观后感
2015/06/03 职场文书
小学教师读书笔记
2015/07/01 职场文书
查看nginx配置文件路径和资源文件路径的方法
2021/03/31 Servers
详解TS数字分隔符和更严格的类属性检查
2021/05/06 Javascript