首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaScript笔记(17)

事件委托 事件委托也称为事件代理,jQuery里面被称为事件委派 事件委托的原理 不是给每个子节点单独设置事件监听器,而是将事件监听器设置在其父节点,然后利用冒泡原理影响设置每个子节点...JS中当触发某些具有冒泡性质的事件,首先在触发元素寻找是否有相应的注册事件,如果没有再继续向上级父元素寻找是否有相应的注册事件作出响应,这就是事件冒泡。...,就算用户点击了页面中的其他地方,只要按下's'键,光标就能回到搜索框: 贴一下我一开始的做法: 但是出现了问题:当我按下s,s也被输进去了,这不是我们要的效果 这是因为我们一直按着...(即使时间很短),所以s也会被输进去,所以我们换个思路,将keydown换成keyup,那么就可以成功实现了: 案例:模拟京东快递查询 我们输入单号的时候上面会出现一个大的框框,里面的数字字号更加大些...,先自己试着做做 千万要注意用的是keyup而不是keydown,因为我们按下键盘,就已经触发事件,但是文字还没有输入文本框内.

76910

JavaScript——DOM事件高级

(目标对象),当该对象触发指定的事件,就会执行事件处理函数。...一个小区有100个快递,快递员一个一个送太麻烦,就委托到小区一个代取点,然后买家自行领取。 事件委托也称为事件代理,jQuery里面称为事件委派。...原理:不是每个子节点单独设置事件监听器,而是事件监听器设置父节点,然后利用冒泡原理影响设置每个子节点。 作用:只操作一次DOM,提高程序的性能。...键盘事件 触发条件 onkeyup 某个键盘按键被松开触发 onkeydown 某个键盘按键被按下触发 onkeypress 某个键盘被按下触发 但不识别功能键 keyup按键弹起触发:...('keypress', function (e) { console.log('press:' + e.keyCode); }) keyupkeydown事件不区分字母大小写

1.8K10
您找到你想要的搜索结果了吗?
是的
没有找到

窥探现代浏览器架构(四)

到达合成线程的输入 这篇文章是探究Chrome内部工作原理的四集系列文章中的最后一篇了。...在上一篇文章中,我们探讨了一下浏览器渲染页面的过程以及学习了一些关于合成线程的知识,本篇文章中,我们要看一下当用户在网页输入内容的时候,合成线程(compositor)做了些什么来保证流畅的用户体验的...可是,如果你从浏览器的角度去看一下这段代码,你会发现上面给body元素绑定了事件监听器后其实是将整个页面都标记为一个非快速滚动区域,这就意味着即使你页面的某些区域压根就不在乎是不是有用户输入,当用户输入事件发生...和之前相同的事件轴,可是这次事件被合并并延迟调度了 任何诸如 keydownkeyup, mouseup, mousedown, touchstart和 touchend等相对不怎么频繁发生的事件都会被立即派送给主线程...如果你之前从来没有想过为什么DevTools推荐你事件监听器使用 passive:true选项或者script标签中写 async属性的话,我希望这个系列的文章可以给你一些关于浏览器为什么需要这些信息来提供更快更流畅的用户体验的原因

44830

Python 项目实践一(外星人入侵小游戏)第三篇

本节中,我们将创建一个名为game_functions的新模块,它将存储大量游戏《外星人入侵》运行的函数。...检测pygame.KEYUP事件,以便玩家松开右箭头键我们能够知道这一点;然后,我们将结合使用KEYDOWNKEYUP事件,以及一个名为moving_right的标志来实现持续移动。...函数check_events()检测相关的事件,如按键和松开,并使用辅助函数check_keydown_events()和check_keyup_events() 来处理这些事件。...主循环中,我们将使用这个编组屏幕绘制子弹,以及更新每颗子弹的位置: import sys from settings import Settings from ship import Ship import...我们无需修改check_keyup_events(),因为玩家松开空格键什么都不会发生。我们还需修改update_screen(),确保调用flip()前屏幕重绘每颗子弹。

2.6K90

inputchangecompositionkeydown事件详解

change事件在用户行为导致input | select | textarea的value改变 && (失去焦点 || 回车)触发。 composition事件输入法编辑器输入字符后触发。...如上图,输入数字并不会触发composition,有输入法编辑器才会触发。 keydown 从按钮按下到弹起,会依次触发keydown、keypress、keyup事件。...其中keydown会在按下任意字符后触发,keyup会在按键弹起后触发(chrome下中/英切换按钮弹起不会触发keyup)。...keypress会在按下可显示内容(数字/字母/符号)后keydown之后触发。shift | meta等不会产生实际内容的按钮不会触发keypress。...事件触发顺序 对于input[type="text"]当没有输入中文,事件触发顺序为: keydown keypress beforeinput input keyup 失去焦点 change 当使用输入输入

2K10

input中回车后页面提交导致出现HTTP 错误 405.0 - Method Not Allowed

前些时间在做一个搜索功能发现一个比较有意思的现象,场景是这样的:一个模态窗口中是一个订单列表,页面的顶部有若干个状态筛选框和一个搜索关键字输入框,当焦点在关键字输入按回车,本来是对input的keyup...事件做了监听,当发现是按了回车键便自动提交搜索请求的,但输入关键字后按回车页面竟然跳转了,并且出现“HTTP 错误 405.0 - Method Not Allowed无法显示您正在查找的页面,因为使用了无效方法...按照错误信息及现象(页面跳转了)来看,应该是因为触发了页面提交了,但事实,当在keyup事件里面alert,根本还没有执行到keyup事件里面去就已经跳转了。...自动提交的动作本身浏览器默认事件中绑定的,按键盘的操作就是keyupkeydown,我原本的按键监听是keyup事件里写的,所以把keydown事件重写,然后终止默认事件执行就OK了。...我的代码如下,供遇到同样问题的朋友参考: /** * 关键词输入框回车事件触发搜索 */ win.find('input[name="keyword"]').bind('keyup', function

1.8K10

常用的键盘事件

三个事件的执行顺序 keydown -> keypress -> keyup // 常用的键盘事件 //1. keyup 按键弹起的时候触发...三个事件的执行顺序 keydown -- keypress -- keyup 1.2 键盘事件对象 注意:         1. ...我们的keyup 和 keydown 事件不区分大小写 a 和 A 得到的都是65       2.我们的keypress 事件区分大小写  a 97 和 A 得到的是65    3.onkeydown... 1.4 案例:模拟京东快递单号查询 要求:当我们文本框中输入内容,文本框上面自动显示大字号的内容。...案例分析   快递单号输入内容, 上面的大号字体盒子(con)显示(这里面的字号更大)        表单检测用户输入: 给表单添加键盘事件        同时把快递单号里面的值(value)获取过来赋值给

3.1K10

使用Unity3D的设计思想实现一个简单的C#赛车游戏场景

最近看了看一个C#游戏开发的公开课,该公开课中使用面向对象思想与Unity3D游戏开发思想结合的方式,对一个简单的赛车游戏场景进行了实现。...原本C#中很方便地就可以完成的一个小场景,使用Unity3D的设计思想(即一切游戏对象皆空对象,拖拽组件才使其具有了活力)来实现却需要花费大量时间与精力,究竟它神奇什么地方?...组件(Component)是用来绑定到游戏对象(Game Object)的一组相关属性。本质每个组件是一个类的实例。...利用事件的特性(事件链),当GameObject的特定事件(这里主要是KeyDownKeyUp与Update三个事件)被触发,会依次触发注册到该GameObject的所有组件的特定事件方法。   ...但是,Unity3D正是帮我们做了这样的基础工作,所以才有了我们可以方便的拖拽组件的便利,扩展性方面展现了很好的威力。

1.6K30

关于“Python”的核心知识点整理大全31

循环更简单,并后续开发更容易:模块game_functions而不是 run_game()中完成大部分工作。...函数check_events()内部,我们事件循环中添加了一个elif代码块,以便在Pygame 检测到 KEYDOWN事件作出响应(见)。...我们将游 戏检测pygame.KEYUP事件,以便玩家松开右箭头键我们能够知道这一点;然后,我们将结合使 用KEYDOWNKEYUP事件,以及一个名为moving_right的标志来实现持续移动。...这样,玩家输入时,飞船的位 置将更新,从而确保使用更新后的位置将飞船绘制到屏幕。如果你现在运行alien_invasion.py并按住右箭头键,飞船将不断地向右移动,直到你松开为止。...如果使用一个elif代码块来处理向左 移动的情况,右箭头键将始终处于优先地位。从向左移动切换到向右移动,玩家可能同时按住 左右箭头键,在这种情况下,前面的做法移动更准确。

8110

浅谈JavaScript的事件(事件类型)

DOM3级的事件类型主要包括:UI事件,用户与页面上的元素交互触发;焦点事件,元素获得或失去焦点触发;鼠标事件,用户通过鼠标页面上执行操作触发;滚轮事件,使用鼠标滚轮触发;文本事件,当在文档中输入文本触发...键盘与文本事件   用户使用键盘时会触发键盘事件,有3个事件:keydown事件,当用户按下键盘上任意键触发,如果按住不放会重复触发此事件;keypress事件,当用户按下键盘上的字符键触发,如果按住不放会重复触发此事件...其中keydown和keypress是文本框发生变化之前触发,keyup文本框变化之后触发。如果按下的是非字符集,则会触发keydownkeyup事件。   ...发生keydownkeyup事件,event对象的keyCode属性会包含一个代码,与键盘上一个特定的键对应。...IME可以用户输入键盘上找不到的字符。IME通常需要同时多个字符来确定一个字符,比如中文的输入

1.8K50

关于“Python”的核心知识点整理大全32

鉴于现在调整飞船的位置,将增加或减去一个单位为像素的小数值,因此需要将位置存储一 个能够存储小数值的变量中。可以使用小数来设置rect的属性,但rect将只存储这个值的整数部 分。...: check_keydown_events(event, ship) elif event.type == pygame.KEYUP: check_keyup_events(event, ship...) 我们创建了两个新函数:check_keydown_events()和check_keyup_events(),它们都包含形参 event和ship。...函数 check_events()检测相关的事件,如按键和松开,并使用辅助函数check_keydown_events()和 check_keyup_events()来处理这些事件。...需要绘制子弹,我们调用draw_bullet()。函数draw.rect()使用存储self.color中的颜色 填充表示子弹的rect占据的屏幕部分(见3)。

11910

keyup?onchange?

开发中,经常会遇到实时统计文本框或文本域中输入字符的个数,超过规定位数后禁止再输入。 ?...二、keypress、keydownkeyup事件 用户按下键盘上的字符键(释放键盘上的键)触发,任何可以获得焦点的元素都可以触发keypress事件,且按下任何能够影响文本显示的键就会触发(例如回车键...(不触发) keyup 准确 不可以 不可以 问题: (1)keypress和keydown键盘按下触发,此时var numbers = this.value.length;长度为0,所以会导致统计时差一个字符...(2)粘贴情况下,keydown一次性超过指定位数(140)无法控制,keypress不会被触发;而keyup已后知后觉!!...注意:IE下使用onpropertychange代替onchange。

2.7K31
领券