| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1449 人关注过本帖
标题:事件与 事件处理器之间问题
只看楼主 加入收藏
於晓琪123
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2014-11-4
结帖率:71.43%
收藏
已结贴  问题点数:20 回复次数:4 
事件与 事件处理器之间问题
由一个例子引发的 我的疑问
要求:文本框只能输入数字  其他字符打不进去
主体代码:
   function checkNum(){
    if (window.event.keyCode>=48 &&window.event.keyCode<=57){
      }else{
        return false }         
}
<input type="text" onkeyDown="return checkNum()">
事件处理器是看书上说的,书上的意思就是为相应javascipt的事件处理代码 这些标签都增加 相应事件的属性——事件处理器
那么我的问题是;
1.对于onkeyDown这个属性是不是它不完全只是一个事件,它其实也做了相应的事件处理,比如说把敲的字符输入到文本框。而就这题而言 是不是我在后面给属性赋的值其实是加在这个事件 本身就写好了的一个事件处理代码里,而且还是插在输入字符到文本框这部分代码之前。
2.既然onkeyDown 不仅仅是一个事件 它还进行了输入字符的处理  那么向其他的 onclick dbclick 之类的是不是也有自己本身的一个处理,而我们在后面赋值的这些js代码又是怎么跟本身处理的代码联系的??两者间是如何协调运行的??
2015-08-04 00:09
於晓琪123
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2014-11-4
收藏
得分:0 
是不是有点繁琐  希望有人来帮我解释一下 很想知道底层是怎么运行的
2015-08-04 00:10
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2546
专家分:9359
注 册:2007-11-3
收藏
得分:0 
LZ这个问题问的好 很难得 好久没有这样的帖子 LZ是想知道javascript事件机制底层实现原理 我得建议是这种你需要鼓起勇气去研究chrome源码 有你想知道的答案

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2015-08-04 14:33
jsRank
Rank: 5Rank: 5
等 级:职业侠客
威 望:6
帖 子:69
专家分:303
注 册:2015-5-11
收藏
得分:20 
浏览器本身是一个c/s架构的系统,chrome,safari等都是用c++进行编写的。关于事件处理部分,涉及到跟系统内核的消息通信,系统内核对外都提供了应用程序编程接口(也就是API)。键盘事件,鼠标事件都有对应的API。
当文本框获取焦点,并开始敲击键盘,操作系统就会向应用程序发送一个按键被按下的消息,浏览器捕获该消息,并将该消息(浏览器内部会对该消息数据进行处理,转换,封装)回传给事件监听函数。
例如:
onkeydown="a()";
键盘按下产生消息message,操作系统根据当前焦点所在的窗口window,将message传递给浏览器,浏览器将消息message处理成js可以识别的事件对象event,接下来浏览器就调用onkeydown属性a函数,将event对象赋值给a的参数或将event对象赋给window对象。
不同浏览器不同版本对此处理不同。

其中曲折相当复杂

追求卓越,成功就会跟着你走!
2015-08-04 15:27
於晓琪123
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2014-11-4
收藏
得分:0 
回复 4楼 jsRank
谢啦
2015-08-05 21:15
快速回复:事件与 事件处理器之间问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042582 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved