- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 keypress、keydown 和 keyup 的各种行为感到困惑。我似乎错过了一份重要的文档,它解释了这三者的微妙之处和细微差别。有人可以帮助我找出我需要阅读哪些文档才能更有效地使用这些事件吗?如果您想了解详细信息,请参阅下文。
@o.v.:您要求我显示一些代码,但这并不是我要解决的代码中的具体问题。我正在尝试了解这些事件处理程序的行为,并请了解它们的人为我指点一份好的文档。
我使用 jQuery 构建输入表单并将其插入到我的文档中。大多数情况下它工作得很好。我希望表单像我看到的大多数其他输入表单一样响应键盘: esc 键应该像单击取消按钮一样关闭表单,因为表单有一个 <textarea>
在其上,cmd + enter 应该与单击确定按钮相同。使用 keypress 事件似乎很简单。问题是 Chrome 不会为 esc 键或 cmd + enter 调用我的 keypress 处理程序。它针对 ctrl + enter 和 option + enter 以及字母数字触发,但不针对 cmd + 输入。
所以我将使用keyup来代替。我得到esc的keyup,cmd的keyup,以及keyup kbd>输入,太好了。但当我按住 cmd 时,我没有得到 enter 键的 keyup。
第三次是魅力所在,您可能认为keydown似乎有效,但是使用keydown,您可以获得重复键。我知道,您所要做的就是在第一次调用时取消绑定(bind)处理程序,但三种不同的事件类型的行为如此不同似乎很奇怪。为什么是这样?是否有一份我显然没有读过的明显文件?
最佳答案
<强> Keypress :
<小时/>The keypress event is sent to an element when the browser registers keyboard input. This is similar to the keydown event, except in the case of key repeats. If the user presses and holds a key, a keydown event is triggered once, but separate keypress events are triggered for each inserted character. In addition, modifier keys (such as Shift) trigger keydown events but not keypress events.
<强> Keydown :
<小时/>The keydown event is sent to an element when the user first presses a key on the keyboard. It can be attached to any element, but the event is only sent to the element that has the focus. Focusable elements can vary between browsers, but form elements can always get focus so are reasonable candidates for this event type.
<强> Keyup :
<小时/>The keyup event is sent to an element when the user releases a key on the keyboard. It can be attached to any element, but the event is only sent to the element that has the focus. Focusable elements can vary between browsers, but form elements can always get focus so are reasonable candidates for this event type.
此外,这是一条通常被掩盖的方便信息:
<小时/>If key presses anywhere need to be caught (for example, to implement global shortcut keys on a page), it is useful to attach this behavior to the document object. Because of event bubbling, all key presses will make their way up the DOM to the document object unless explicitly stopped.
To determine which character was entered, examine the event object that is passed to the handler function. While browsers use differing properties to store this information, jQuery normalizes the .which property so you can reliably use it to retrieve the character code.
Note that keydown and keyup provide a code indicating which key is pressed, while keypress indicates which character was entered. For example, a lowercase "a" will be reported as 65 by keydown and keyup, but as 97 by keypress. An uppercase "A" is reported as 65 by all events. Because of this distinction, when catching special keystrokes such as arrow keys, .keydown() or .keyup() is a better choice.
有关 MAC 上 cmd
键的更多信息:jQuery key code for command key
关于jquery - jQuery keypress、keydown、keyup 黑魔法(在 Mac 上)背后的理论是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12827408/
简单的单词自动完成功能仅显示与已输入字符相匹配的单词列表。但是我想根据单词出现的概率对自动完成列表中的单词进行排序,这取决于之前输入的单词,依赖于文本语料库的统计模型。为此我需要什么算法和数据结构?你
今天再来说下网站推广的五种基本方式。可能今天的文章比较宏观,按民间的说法就是比较“虚”,所以不愿看此类文章的同志请慎重。个人认为,要想把推广工作做好,不能只懂得务实,以为成天闷头干活就成了;一定要对
引言 众所周知,数据流分析是实现污点分析的一种常用技术 数据流分析分为过程内的数据流分析与过程间的数据流分析。前者是对一个方法体内的数据流分析,主要是基于CFG分析,不涉及方法调用;后者是基于不同
本文分享自华为云社区《大模型LLM之分布式训练》,作者: 码上开花_Lancer。 随着语言模型参数量和所需训练数据量的急速增长,单个机器上有限的资源已无法满足大语言模型训练的要求。需要设计分布式训
本文分享自华为云社区《五大基础算法--动态规划法》,作者: 大金(内蒙的)。 一、基本概念 动态规划法,和分治法极其相似。区别就是,在求解子问题时,会保存该子问题的解,后面的子问题求解时,可以直接拿来
**摘要:**介绍了Angular中依赖注入是如何查找依赖,如何配置提供商,如何用限定和过滤作用的装饰器拿到想要的实例,进一步通过N个案例分析如何结合依赖注入的知识点来解决开发编程中会遇到的问题。 本
使用 xUnit 2.4.1,我正在寻找一种方法让它在动态跳过集成测试时执行我的扭曲命令。 我知道 xUnit 不是为集成测试而设计的,但我无意将 xUnit 用于某些测试,不是-xUnit 用于其他
我遇到了这个问题; “无损压缩算法声称可以保证使某些文件变小而没有文件变大。 这是; a) Impossible b) Possible but may run for an indeterminat
指向结构的指针如此频繁,以至于有一个特殊的运算符:->。以下表达式是等效的: (*x).y x->y 将这个运算符简单地定义为这样的预处理器宏是否公平: #define (x)-> (*(x).)
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 11 年前关闭。 Improve this
我正在使用各种 jquery 插件,包括延迟加载、scrollTo、图像效果以及从阅读本网站上的人们的帖子中收集的各种片段。现在,所有这些效果都从页脚处发出,并且出现了滞后现象。效果就像是,犹豫,或神
我已经搜索了 1 个小时来了解(并获得可行的来源)调整大小在 CSS(媒体)中发生时如何触发以及由哪个组件触发。 我想要的是它在浏览器中的工作方式,调整窗口大小时它的作用。不是代码。 这样做的目的是创
我有一个问题,我不想实现。我只是想在我的推理中得到一点帮助。 我想确定两个对象是否重叠(它们的 x 和 y 坐标,以及它们的高度和宽度都存储在一个 vector 中),然后,如果重叠,则将它们从当前
我的问题实际上与代码无关,我知道如何反转字符串。 这是一个非常常见的面试问题,所以我想澄清一下我认为正确的解决方案是什么。 所以前提开始了,你在字符串的末尾有一个计数器,然后在开头有一个。然后交换它们
我正在尝试在 Android 上编写一个 GPS 跟踪(类似于慢跑应用程序),但 GPS 位置抖动问题使它变得丑陋。当精度为 FINE 且精度在 5 米以内时,位置每秒抖动 1-n 米。您如何从合法运
这个问题在这里已经有了答案: Why does adding 0.1 multiple times remain lossless? (3 个答案) 关闭 8 年前。 以下表达式返回 false(例
问答系统(Question Answering System,QA) 是信息检索系统的一种高级形式,它能用准确、简洁的自然语言回答用户用自然语言提出的问题。其研究兴起的主要原因是人们对快速、准确地获
NLP问答任务 相似度和规则匹配,都是早期的方法,现在主流的方法,都是基于生成的方法 结构化数据问答,有两种形式,一种是知识图谱形式、一种是关系型数据库形式。 主要应用在企业中,减少销售的
什么是任务型对话: 任务型:用于帮助用户完成某领域的特定任务,例如订餐、查天气、订票等 闲聊型:也称作开放域对话系统,目标是让用户持续的参与到交互过程,提供情感陪伴 问答
常见的对话系统 个人助手 •Apple Siri, Amazon Alexa, Baidu Xiaodu 客户服务•餐厅预定、商品咨询、债务催收 休闲娱乐 •Micr
我是一名优秀的程序员,十分优秀!