最近学了jQuery,感觉这个jQuery是真的挺不错的,果然像他说的那样,少些多做!刚一入手感觉真是不错。但是写多了,就会发现这个代码一行居然能写那么长。而且可读性还不好。 有幸自己买了一本锋利的jQuery这本书。我就整理了下。到底在实际应用中怎么让自己的jQurey的代码看起来可读性强,而且还有美感。 我就用了了本书中的一个小例子。来教教大家代码应该怎么写菜好看!

废话不多说,想把这个demo代码奉上。各位爷!您瞧好啊~
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>菜单栏</title>
<style>
*{
margin: 0;
padding: 0;
}
.box{
width: 400px;
height: 280px;
background-color: red;
margin: 50px auto;
border: 1px solid #000;
}
.box .menu{
width: 100%;
height: 100%;
background-color: gold;
list-style: none;
}
.box .menu>.level1{
width: 100%;
height: auto;
line-height: 40px;
list-style: none;
}
.box .menu>.level1>a.current{
background-color: green;
color: #0a0a0a;
text-decoration: none;
}
.box .menu>.level1>a{
display: inline-block;
background-color: gray;
width: 100%;
text-align: center;
text-decoration: none;
}
.box .menu>.level1>.level2{
width: 100%;
height: 160px;
background-color: white;
display: none;
float: left;
}
.box .menu>.level1:nth-of-type(1)>.level2{
display: block;
}
.box .menu>.level1>.level2 li{
width: 100%;
height: 40px;
list-style: none;
background-color: gainsboro;
text-align: center;
}
</style>
<script src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script>
<script>
$(function () {
$(".level1>a").click(function () {
$(this).addClass("current").next().show().parent().siblings().children("a").removeClass("current").next().hide();
return false;
});
});
</script>
</head>
<body>
<div class="box">
<ul class="menu">
<li class="level1">
<a href="#one" class="current">衬衫</a>
<ul class="level2">
<li>短袖衬衫</li>
<li>长袖衬衫</li>
<li>短袖衬衫</li>
<li>短袖衬衫</li>
</ul>
</li>
<li class="level1">
<a href="#one">卫衣</a>
<ul class="level2">
<li>开襟卫衣</li>
<li>开襟卫衣</li>
<li>开襟卫衣</li>
<li>开襟卫衣</li>
</ul>
</li>
<li class="level1">
<a href="#one">裤子</a>
<ul class="level2">
<li>短袖衬衫</li>
<li>裤子衬衫</li>
<li>短袖衬衫</li>
<li>裤子衬衫</li>
</ul>
</li>
</ul>
</div>
</body>
</html>
童鞋们。请看这段代码
$(".level1>a").click(function () {
$(this).addClass("current").next().show().parent().siblings().children("a").removeClass("current").next().hide();
return false;
});
请问你第一眼看着个你能一下子看明白是怎么回事吗?
哪怕是开发过几年的大神。也不能一眼就看出来这行代码要干啥。就是因为这行代码太长了。每读一次都要自讲前面的串联起来看。毫无美感,阅读性。
虽然jQuery做到了行为和内容的分离,但jQuery代码也应该拥有良好的层次结构机规范,这样才能进一步改善代码的可读性和可维护性。
所以代码应该写出这种样式
$(".level1>a").click(function () {
$(this).addClass("current")
.next().show()
.parent().siblings().children("a").removeClass("current")
.next().hide();
return false;
});
将每一次对象执行的动作分割成单独一行。这样可读性就大大提高了。
但也不要随意分割,随意分割那你还不如分割呢。所以总结了,以下三点
1.对于同一个对象不超过3个操作的,可以直接写成一行
$(this).addClass("current").show();
2.对于同意对象的较多操作建议,每行写一个操作
$(this).addClass("current")
.show()
.fadeTo("mouseover")
.fadeTo("fast",1)
.unbind("click")
.click(function(){
//do something
});
3.对于多个对象的少量操作,可以每一个对象写一行,如果涉及子元素,可以考虑适当的缩进,例如demo中的代码
$(this).addClass("current")
.childer("li").show().end()
.siblings().removeClass()
.children("a").hide();
还要强调一点,就是要为代码添加注释;
jQuery 以其强大的选择器著称,有时候很复杂的问题用一行选择器就可以轻松解决,但是很容易写出来下面的代码
$("#table>tbody>tr:has(td:has(:checkbox:enabled))").css("background","red"); 哈哈,你能一眼认出来我吗?
在编写一个优秀的选择器的时候,千万不要忘记给这一段代码加上注释,这很重要,无论是自己日后阅读还是与他人分享、合作开发,注释都能起到良好的效果
//注释:在一个id为table的表格的tbody中,如果每一行的一列中的checkbox没有被禁用,则把这行的背景设为红色
$("#table>tbody>tr:has(td:has(:checkbox:enabled))").css("background","red");
通过类似的有意义的注释,能够培养良好的编码习惯和风格,提高开发效率。
----------------------------------------------------------更新---------------------------------------------------------
(1)jQuery对象和DOM对象的相互转换
在jQuery对象和DOM对象相互转换之前,先约定好定义变量的风格,如果获取的对象是jQuery对象,那么在变量面前加上$
例如:
var $variable = jQuery对象
如果获取的DOM对象;
var varible = DOM对象;
以上是jQuery编写的规范。希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# jquery
# 代码规范
# Python 切片索引越界的问题(数组下标越界)
# 老生常谈java数组中的常见异常
# java数组中的异常类型整理
# js代码规范之Eslint安装与配置详解
# 后端代码规范避免数组下标越界
# 这行
# 你能
# 选择器
# 自己的
# 我就
# 就会
# 他说
# 都要
# 多个
# 都能
# 设为
# 买了
# 你还
# 几年
# 很容易
# 一本
# 这段
# 大神
# 但也
# 很重要
相关文章:
如何通过网站建站时间优化SEO与用户体验?
潍坊网站制作公司有哪些,潍坊哪家招聘网站好?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
招贴海报怎么做,什么是海报招贴?
如何在云主机上快速搭建网站?
如何选择高效响应式自助建站源码系统?
用v-html解决Vue.js渲染中html标签不被解析的问题
建站主机选购指南:核心配置优化与品牌推荐方案
Android自定义控件实现温度旋转按钮效果
如何零基础开发自助建站系统?完整教程解析
如何用免费手机建站系统零基础打造专业网站?
如何在腾讯云服务器快速搭建个人网站?
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
如何在景安云服务器上绑定域名并配置虚拟主机?
无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
如何通过西部建站助手安装IIS服务器?
网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
如何在新浪SAE免费搭建个人博客?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
建站DNS解析失败?如何正确配置域名服务器?
音乐网站服务器如何优化API响应速度?
如何在宝塔面板中修改默认建站目录?
如何选择PHP开源工具快速搭建网站?
建站之星如何修改网站生成路径?
视频网站制作教程,怎么样制作优酷网的小视频?
网站制作价目表怎么做,珍爱网婚介费用多少?
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
建站之星如何实现PC+手机+微信网站五合一建站?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
,如何利用word制作宣传手册?
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
如何在Golang中使用replace替换模块_指定本地或远程路径
宝华建站服务条款解析:五站合一功能与SEO优化设置指南
C#如何使用XPathNavigator高效查询XML
Android自定义listview布局实现上拉加载下拉刷新功能
,sp开头的版面叫什么?
,想在网上投简历,哪几个网站比较好?
如何快速登录WAP自助建站平台?
建站OpenVZ教程与优化策略:配置指南与性能提升
番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
建站之星CMS五站合一模板配置与SEO优化指南
昆明网站制作哪家好,昆明公租房申请网上登录入口?
如何高效利用亚马逊云主机搭建企业网站?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
视频网站app制作软件,有什么好的视频聊天网站或者软件?
*请认真填写需求信息,我们会在24小时内与您取得联系。