我自己常常在写代码的时候,会突然搞不清变量用来干嘛的,也会被理不清的逻辑搞得自己异常烦躁,我甚至常常暗示自己我不适合写代码,思维总是那么不清晰。直到我发现了思维导图的妙用。

最开始使用思维导图的时候,我其实是用来记知识点的。然而某一刻就灵光一闪了,尝试使用了思维导图来记录代码变量和逻辑,最后居然就轻松的把以为要理很久的问题搞定了。为了验证自己的想法,我又尝试自己写了一些小东西,对于我们这些初学者,肯定是选项卡和分页什么的最常用了,因为里面有一些变量总是那么令人难以捉摸,这里我以分页为例,向大家分享我是如何用脑图完成分页的。

这里省去使用ajax获取后台数据的部分,我自己创建一个js文件,里面用JSON存了一点数据。一般来说使用ajax都是一页一页的获取数据,我这里直接将所有数据都显示出来。

首先,根据多方了解,翻阅资料,找到了一种实现分页的方式,大概就是用一些变量来控制,比如当前页,总页数,还有第几页的按钮等等,然后再写一个比如showPage()来显示当前页的内容,通过变量的改变来控制showPage()的显示。

  • 首先用css画一个大概样式图

  • 然后自行脑补一下想要实现的功能

  • 理清变量和功能方法

  • 然后我们以showBtn()为例,思考如何完成这个函数。

我们默认每一个button页有5个按钮,为了防止最后一页不够5个,因此先隐藏所有的按钮,然后通过循环将存在的按钮显示出来

于是我就可以完成showButton函数如下

function showButton() {var$numb = $('.numb'),min = (btn_cur-1)*5 + 1,max = 0;if (btn_cur == btn_acount) {max = page_acount + 1;} else if (btn_cur < btn_acount) {max = (btn_cur*5) + 1;};$numb.hide();for(var i=min; i<max; i++) {!function() {$numb.eq(i%5 - 1).show();$numb.eq(i%5 - 1).attr('data-list', i);$numb.eq(i%5 - 1).html(i);}();}
}

当我没有使用脑图写出来的代码是这样的 - -!,完全没逻辑可言有木有

function showButton() {var $numb = $('.numb');if (btn_acount == 1) {$numb.hide();$('.more').hide();$('.last').hide();for(var i=0; i<acountPage; i++) {$numb.eq(i).show();$numb.eq(i).attr('data-list', i);}};var min = (btn_cur-1)*5 + 1;var max = 0;if (btn_cur == btn_acount) {max = page_acount+1;} else if (btn_cur < btn_acount) {max = btn_cur*5+1;};$numb.hide();for( var i=min; i<max; i++ ) {$numb.eq(i%5 - 1).show();$numb.eq(i%5 - 1).attr('data-list', i);$numb.eq(i%5 - 1).html(i);}
}
  • 在来一轮逻辑整理,当函数都写好,变量都整明白了,就可以添加事件了,先来一轮思维整理。


于是按照这个思路,轻松完成事件添加,代码如下

$('.pos_page').on('click', function(e) {// e.preventDefault();var $target = $(e.target);var className = $target.attr('class').split(' ')[0];$target.on('selectstart', function() {return false;});switch(className) {case 'prev_page':if (index!=0) {index -= 1;page_cur -= 1;} else if (index == 0) {if (btn_cur > 1 ) {index = 4;btn_cur -= 1;page_cur -= 1;} else if (btn_cur == 1) {return;}};showPage(page_cur, page_every);showButton();setFocus();break;case 'next_page':if (btn_cur == btn_acount) {if (index == page_acount%5 - 1) {return;} else if( index < page_acount%5 - 1) {index ++;page_cur ++;}} else if (btn_cur < btn_acount) {if (index == 4) {index = 0;btn_cur += 1;page_cur += 1;} else if (index < 4) {index ++;page_cur++;};};showPage(page_cur, page_every);showButton();setFocus();break;case 'numb':page_cur = $target.attr('data-list');index = page_cur%5-1;console.log(page_cur);showPage(page_cur, page_every);showButton();setFocus();break;case 'more':if (btn_cur < btn_acount) {btn_cur += 1;index = 0;showButton();setFocus();page_cur = $('.numb').eq(0).html();showPage(page_cur, page_every);};break;case 'last':if (btn_cur != btn_acount) {btn_cur = btn_acount;index = 0;page_cur = (btn_cur - 1)*5 +1;showPage(page_cur, page_every);showButton();setFocus();};default:break;}
});

主要是通过类名来区分目标DOM,通过自定义data-list属性来标识当前页

总的来说,与我而言,通过思维导图,是写出思维严密,易于维护的代码的有效途径,看上去浪费了时间,其实增加了非常多的效率。

使用思维导图,优雅的完成自己的代码相关推荐

  1. 关于JavaWeb JSP的思维导图

    关于JavaWeb JSP的一些总结 目录 JSP脚本元素 jsp代码段 声明标识 JSP表达式 jsp思维导图 JSP脚本元素 jsp代码段 代码段示例 <%--Created by Inte ...

  2. 思维导图(脑图)软件及其应用

    导言:脑图是一门新兴的脑科学.它的诞生代替了一大堆繁复的文字,使各项事件之间的关联一目了然.而脑图软件节约了我们的时间,使我们的思维可视化,形象化.它不光在教育领域,实际上在各行各业都有着广泛的用途, ...

  3. MySQL-基础代码(部分)+思维导图

    文章目录 一.MySQL基础代码 ①.数据库 1.启动数据库 2.关闭数据库 3.登录数据库 4.查看所有数据库 5.创建数据库 6.使用数据库 7.删除数据库 8.修改数据库编码 ②.修改表 9.创 ...

  4. 思维导图 源码 php,使用思维导图,优雅的完成自己的代码

    说了你可能不信,我经常怀疑自己 不!适!合!写!代!码! 写代码的时候,我经常脑壳一晕,或者去群里摸一下鱼,然后就突然搞不清上一段代码写来干嘛的!! 刚才那段代码,真的是我写的? 直到,我发现了思维导 ...

  5. js map 排序_数组方法写给女友的一系列 JS 数组操作(建议收藏 | 内附思维导图)...

    前言 最近和女友,咳咳...(说出来可能会被打s)学习JS数组方法,用几个字形容的话就是听说过,实际使用.遇到的时候就分不清具体方法会得到怎样的结果. 今天我将通过这篇文章好好整理一下关于JS数组的方 ...

  6. 【进阶技巧】如何绘制高颜值XMind思维导图?色彩使用很重要!

    思维导图软件推荐: MindManager Edraw MindMaster TheBrain 思维导图是思维可视化的利器,我们用它来辅助思考,同时也用它来展示思维.当一张思维导图被分享时,它的可读性 ...

  7. 《十四堂人生创意课》读书笔记,思维导图

    思维导图太大,上传不了,放在百度网盘里面了.下载地址:http://pan.baidu.com/s/1ntujjz7 一.在意外频传的时代活下来 911,求生技能.面对死亡 "如何存活&qu ...

  8. 在线流程图和思维导图开发技术详解(三)

    一.项目概述 二.项目架构 三.几何计算难点 四.鼠标事件处理 五.数据保存与导出 六.文本处理 三.几何计算难点 3.1 矩形变换 我们先来看没有旋转的情况.不旋转的情况是比较简单的,只是情况比较多 ...

  9. 那些漂亮有创意的思维导图真的更吸引人吗?

    追求美是人类与生俱来的天性,在这个世界,有时候不得不承认颜值高的人总会受到更多人的关注,获得更多的机会,得到更多的照顾.美的事物会让我们内心觉得舒服,会在我们的记忆中停留更长的时间,从人到小动物,从风 ...

最新文章

  1. sizeof运算求结构体大小
  2. Sublime Text 3 搭建 React.js 开发环境
  3. left join 和join区别_sleep、yield、join方法简介与用法 sleep与wait区别 多线程中篇
  4. Android开发笔记(一百零七)统计分析SDK
  5. [Coci2015]Divljak
  6. 表头样式_1分钟学会制作Word两栏、三栏表头
  7. Visio使用技巧之默认字体大小更改
  8. 第三节 UNIX文件系统结构
  9. QT线程创建的两种方法
  10. MovieLens数据集
  11. 调用阿里云的通用文字识别-高精版识别接口,识别图片中的文字详解
  12. java 保存文件 中文乱码_java文件中文乱码问题
  13. python实现嗅探
  14. vue wath 详细介绍
  15. vue使用provide / inject 组合刷新页面+单独组件刷新
  16. python国内大学哪个教学厉害-国内的本科 CS 教学和国外相比有什么优劣?
  17. Q learning
  18. 非静默授权没有弹出弹框_网易考拉Android统一弹框
  19. OpenGL学习笔记:光照贴图
  20. Mac U盘安装High Sierra

热门文章

  1. 会计基础第一章模拟试题(1)
  2. citrix xenapp应用保存文件时隐藏服务器上的磁盘
  3. RMAN的show,list,crosscheck,delete 命令整理
  4. WPF 4 DataGrid 控件(基本功能篇)
  5. ASP.net 2.0 Migrating系列 - Master Pages 感触
  6. 打桥位lisp_lisp函数
  7. [转]文件IO详解(二)---文件描述符(fd)和inode号的关系
  8. 第14、15週PTA題目的處理
  9. 使用云服务器安装QEMU搭建嵌入式开发环境
  10. 51nod 1090 1267 【二分简单题】