</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”); 哈哈,你能一眼认出来我吗?
在编写一个优秀的选择器的时候,千万不要忘记给这一段代码加上注释,这很重要,无论是自己日后阅读还是与他人分享、合作开发,注释都能起到良好的效果










