绑定focus事件的函数里绑定键盘事件造成的冲突?错误?
来源:互联网 发布:ipad怎么看淘宝直播间 编辑:程序博客网 时间:2024/05/16 17:15
折腾了一天,作为前端开发初学者,来写篇心得和笔记咯。
有些时候,简单的代码蕴涵了深奥的语法规则,或者浏览器引擎的原理,当然,具体什么原理,到现在也还没搞清楚,知道的人可以q我247069512,谢谢。
废话不多说,textarea中回车提交的一个问题,代码:
<span style="font-size:14px;"> $(document).ready(function(){ $('#btn').on('click',function(){ alert('btn被点击了') })// 注释了 $('#word').on('focus',function(){ $('#word').keydown(function(e){ e=window.event||e if(e.keyCode==13|| e.which==13){ e.preventDefault() $('#btn').click() } }) })// 注释了 })</span>对应的html很简单,一个#btn按钮,一个#word textarea,作为一个只学过c c++的人来说。一下子使用js jq这样的面向对象的语言,从思想上一不注意就跑偏了,更别说js jq还具有事件这个很特殊的东东,如代码--我想当然的想要为键盘事件监听设定限制,就是得在focus的时候才设置监听,监听完了判定,是否为回车然后,执行btn的点击事件,然而确忽略了事件绑定,并不是像c那样面向过程的,一步一步来的,一不注意,‘嵌套’的事件绑定就成了一种循环,递归。。如果不注释代码的两段,第一次按回车,会点击一次btn,然后再回车,会点击两次btn 然后再回车的话,就是三次,一直累加。。我开始一直没搞懂为什么,这就很显然是一种面向过程思想带来的误区。总错误的觉得,focus是一种限制状态,在这种状态下才监听键盘事件,而实际上,程序总不会像我们想要的方式执行,而是以我们告诉它的方式执行,上个例子中,每一次我们回车,执行click,文本框会失去焦点,然后又获得焦点,这一瞬间,又进行了一次focus事件执行-->事件监听,但是这仅仅只是解释了注释的代码是多余的。思路是不正确的。。至于为什么回车事件,为递增,触发每一次+1的click事件。我仍然无法解释。。希望对js jq理解更深刻的朋友告诉我其中的原理。。
1 0
- 绑定focus事件的函数里绑定键盘事件造成的冲突?错误?
- vue的键盘事件直接绑定无效?
- jQuery绑定键盘事件
- 键盘绑定事件
- jQuery绑定键盘事件
- jQuery绑定键盘事件
- js中三种事件绑定之间的关系和事件处理函数里的this值
- javascript事件的绑定
- javascript的事件绑定
- js事件的绑定
- jQuery的绑定事件
- jQuery的事件绑定
- jquery的绑定事件
- jquery的事件绑定
- 事件绑定的简化
- 归纳事件的绑定
- DataBinding的事件绑定
- js的事件绑定
- 关于Toast在页面重复显示,非本页面显示
- 10001--数据库的隔离级别
- Windows 驱动开发 - 8
- Android点击—20150628【附带讲解IOS和娜姐界面】
- JSONObject与JSONArray的使用
- 绑定focus事件的函数里绑定键盘事件造成的冲突?错误?
- 深入学习Service
- 持久化对象的状态
- Android中View绘制流程以及invalidate()等相关方法分析
- Android中View(视图)绘制不同状态背景图片原理深入分析以及StateListDrawable使用详解
- Wildcard Matching
- Fake Numbers
- Android中将布局文件/View添加至窗口过程分析 ---- 从setContentView()谈起
- iphone"此证书是由未知颁发机构签名的"的解决办法