浅谈工作中如何规避思维定式
2016-08-23 20:01
363 查看
有朋友工作中遇到一些问题,让帮忙处理下,分析后,发现其实并不是技术问题,而是思考问题的方式产生了思维定式,下面事例浅谈如何规避:
朋友的问题:实现多个div 绑定点击事件 事件为被点击div增加指定class,同时其余div移除此class,前提是不允许使用jQuery。
当然,jQuery操作起来非常简单,addClass/removeClass 秒秒钟的事情,具体为什么不让用jQuery也无需考究,遇到这种问题,明白jQuery原理的都知道原生JS肯定可以解决的,jQuery集成了很多的函数成库,就是为了方便对DOM的操作,在上述情况下,其实可以转换思路,自己去模仿jQuery的某些方法,来有效的完成原生JS方案,以下具体代码实现:
总结
1,多角度思考问题,避免思维壁垒
2,多去查看jQuery源码,学习其优秀的构造思想
3,解决问题,首先先做出个解决方案,再去考虑实现功能的最优解决方案
4,给同类元素添加事件,jQuery自带轮寻功能,如果需要原生去些,for循环内部函数自调的方式保护变量i
朋友的问题:实现多个div 绑定点击事件 事件为被点击div增加指定class,同时其余div移除此class,前提是不允许使用jQuery。
当然,jQuery操作起来非常简单,addClass/removeClass 秒秒钟的事情,具体为什么不让用jQuery也无需考究,遇到这种问题,明白jQuery原理的都知道原生JS肯定可以解决的,jQuery集成了很多的函数成库,就是为了方便对DOM的操作,在上述情况下,其实可以转换思路,自己去模仿jQuery的某些方法,来有效的完成原生JS方案,以下具体代码实现:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>click div, with adding active class and removing siblings active class</title> <style> div{ width:100%; height:100px; background:#eee; border:1px solid #ff0; } .active{ background:#f00; } </style> </head> <body> <div></div> <div></div> <div></div> <div></div> <script> var div=document.getElementsByTagName("div"); for(var i= 0;i<div.length;i++){ (function(i){div[i].onclick=function(){ removeAllClass(div,'active'); addClass(div[i],'active'); }})(i) } function removeAllClass(obj,cls){ for(var i= 0;i<obj.length;i++){ removeClass(div[i],cls) } } function hasClass(obj, cls) { return obj.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)')); } function addClass(obj, cls) { if (!this.hasClass(obj, cls)) obj.className += " " + cls; } function removeClass(obj, cls) { if (hasClass(obj, cls)) { var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)'); obj.className = obj.className.replace(reg, ' '); } } </script> </body> </html>
总结
1,多角度思考问题,避免思维壁垒
2,多去查看jQuery源码,学习其优秀的构造思想
3,解决问题,首先先做出个解决方案,再去考虑实现功能的最优解决方案
4,给同类元素添加事件,jQuery自带轮寻功能,如果需要原生去些,for循环内部函数自调的方式保护变量i
相关文章推荐
- Extjs4.0 最新最全视频教程
- Javascript中toFixed方法的改进
- 5个常见可用性错误和解决方案
- js数组实现图片轮播
- js可突破windows弹退效果代码
- JSP脚本漏洞面面观
- 使用BAT一句话命令实现快速合并JS、CSS
- js显示当前星期的起止日期的脚本
- 爆炸式的JS圆形浮动菜单特效代码
- js select常用操作控制代码
- JS实现不使用图片仿Windows右键菜单效果代码
- 从jsp发送动态图像
- 原生js结合html5制作小飞龙的简易跳球
- js 页面模块自由拖动实例
- js实现小鱼吐泡泡在页面游动特效
- 利用JS实现数字增长
- js 提交和设置表单的值
- PHP VBS JS 函数 对照表
- node.js抓取并分析网页内容有无特殊内容的js文件
- js+ajax处理java后台返回的json对象循环创建到表格的方法