经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » jQuery » 查看文章
jQuery的链式编程风格
来源:cnblogs  作者:Erudite  时间:2021/5/31 9:07:44  对本文有异议

jQuery的链式编程风格

首先本人通过一个案例来展示jQuery的链式编程风格。先写一个页面,展示一个列表,代码如下:

  1. <body>
  2. <div>
  3. <ul class="menu">
  4. <li class="level1">
  5. <a href="#">水果</a>
  6. <ul class="level2">
  7. <li><a href="#">苹果</a></li>
  8. <li><a href="#">菠萝</a></li>
  9. <li><a href="#">香瓜</a></li>
  10. </ul>
  11. </li>
  12. <li class="level1">
  13. <a href="#">主食</a>
  14. <ul class="level2">
  15. <li><a href="#">面条</a></li>
  16. <li><a href="#">馒头</a></li>
  17. <li><a href="#">米饭</a></li>
  18. </ul>
  19. </li>
  20. </ul>
  21. </div>
  22. </body>
  23.  
  24. <script type="text/javascript">
  25. $(function() {
  26. $(".level1 > a").click(function() {
  27. $(this).addClass("current").next().show().parent.siblings().children("a").removeClass("current").next().hide();
  28. return false;
  29. });
  30. });
  31. </script>

代码执行后的效果如下图所示:

 

 上述代码的扩展效果就是通过jQuery的链式操作实现的,所有增加current类的操作、查询子元素的方法调用、动画方法的调用等都是对同一个元素进行的,所以在开始获取到一个jQuery对象后,后面的所有方法、属性的调用都通过 “.” 进行连续调用即可,这种模式就是链式操作。

为了增加代码的可读性和可维护性,我们将上面的链式代码格式的修改如下:

  1. <script type="text/javascript">
  2. $(function() {
  3. $(".level1 > a").click(function() {
  4. // 给当前的元素添加current样式
  5. $(this).addClass("current")
  6. // 下一个元素显示
  7. .next().show()
  8. // 父元素的同辈元素的子元素a移除current样式
  9. .parent.siblings().children("a").removeClass("current")
  10. // 他们的下一个元素隐藏
  11. .next().hide();
  12. return false;
  13. });
  14. });
  15. </script>

经过规范格式的调整后,增加了代码的易读性,更加方便后期的维护。

与此同时,我们对于同一个jQuery对象进行链式操作时,主要遵循下面3条格式规范。

(1)对于同一个对象不超过3个操作,可以直接写成一行,代码如下:

  1. <script type="text/javascript">
  2. $(function() {
  3. $("li").show().unbind("click");
  4. });
  5. </script>

(2)对于同一个对象的较多操作,建议每行写一个操作,代码如下:

  1. <script type="text/javascript">
  2. $(function() {
  3. $(this).removeClass("mouseout")
  4. .addClass("mouseover")
  5. .stop()
  6. .fadeTo("fast", 0.5)
  7. .fadeTo("fast", 1)
  8. .unbind("click")
  9. .click(function() {
  10. .......
  11. });
  12. });
  13. </script>

(3)对于多个对象的少量操作,可以每个对象写一行,如果涉及子元素,可以考虑适当的缩进。代码如下:

  1. <script type="text/javascript">
  2. $(function() {
  3. $(this).addClass("highLight")
  4. .children("a").show().end()
  5. .siblings().removeClass("highLight")
  6. .children("a").hide();
  7. });
  8. </script>

以上就是有关jQuery的链式编程风格。

 

原文链接:http://www.cnblogs.com/xcbb/p/14826266.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号