精华内容
下载资源
问答
  • keyup
    2021-03-13 05:23:13

    当窗体或控件获得焦点时用户释放按键,此时 KeyUp 事件将发生。在宏中使用 SendKeys 操作或在 Visual Basic 中使用SendKeys语句将键击发送到窗体或控件时,该事件也会发生。

    Private Sub object_KeyUp(KeyCode As Integer, Shift As Integer)

    Object窗体或窗体上控件的名称。

    KeyCode键代码,如 vbKeyF1(F1 键)或 vbKeyHome(HOME 键)。要指定键代码,请使用“对象浏览器”中显示的固有常量。通过将 KeyCode 设为 0,可以禁止对象接收键击。

    ShiftSHIFT、CTRL 和 ALT 键在发生事件时的状态。如果需要测试 Shift 参数,则可以使用以下固有常量之一作为位掩码:

    说明

    注释KeyUp 事件仅适用于窗体或窗体上的控件,而不适用于上的控件。

    若要在这些事件发生时运行宏或,请将属性设置为宏的名称或 [事件过程]。

    对于该事件,获得焦点的对象将接收到所有的键击。窗体仅当它没有控件或它所有可见的控件都失效时才能获得焦点。

    如果将窗体的属性设置为 Yes,窗体将会接收到所有的键盘事件,甚至包括那些对控件发生的键盘事件。通过设置该属性值,所有键盘事件将首先在窗体上发生,然后在获得焦点的控件上发生。无论哪个控件获得焦点,都可以在窗体中对按下的特定键作出响应。例如,可以让组合键 Ctrl+X 总在窗体上执行相同的操作。

    如果按住一个键不放,KeyDown 和 KeyPress 事件将交替重复发生(KeyDown、KeyPress、KeyDown、KeyPress 以此类推),直到键释放,然后 KeyUp 事件才发生。

    尽管在绝大部分键被按下时都将发生 KeyUp 事件,但它们通常用于识别或区别以下的情况:

    ?扩展字符键,例如功能键。

    ?定位键,例如 Home、End、Page Up、Page Down、向上键、向下键、向右键、向左键及 Tab。

    ?键的组合和标准的键盘更改键(Shift、Ctrl 或 Alt)。

    ?数字键盘或键盘数字键。

    当在以下情况下按键时,KeyDown 事件不发生:

    ?当窗体有一个属性设置为“是”的时,按 Enter。

    ?当窗体有一个属性设置为“是”的命令按钮时,按 Esc。

    KeyUp 事件发生在按下或发送键所引起的任何控件事件之后。如果某次键击使得焦点从一个控件移动到另一个控件,则在第一个控件上 KeyDown 事件发生,而在第二个控件上 KeyPress 和 KeyUp 事件发生。

    有关详细信息,请参阅键击事件和鼠标单击事件的发生顺序。

    如果在按下或发送键后显示一个对话框,则 KeyDown 和 KeyPress 事件将发生,但 KeyUp 事件不会发生。

    如果窗体或控件具有焦点,那么无论用户何时按下或释放键,都可以使用 KeyDown 或 KeyUp 宏进行响应。但是,宏无法返回键代码和确定按了哪个键,因此通常要用事件过程处理这些事件。

    不能在 KeyDown 或 KeyUp 宏中使用 CancelEvent 操作。

    更多相关内容
  • 1、KeyPress主要用来接收字母、数字等ANSI字符 KeyDown 和 KeyUP 事件过程通常可以捕获键盘除了PrScrn所有按键(这里不讨论特殊键盘的特殊键 2、KeyPress 只能捕获单个字符 KeyDown 和KeyUp 可以捕获组合键。...
  • 主要介绍了vue实现给div绑定keyup的enter事件,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 今天小编就为大家分享一篇vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 遇到vue element-ui 绑定@keyup事件无效的问题怎么解决?下面小编就为大家分享一篇vue element-ui 绑定@keyup事件无效的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • react-hotkeys React组件可侦听keydown和keyup键盘事件,定义和调度键盘快捷键。 使用hotkeys.js的fork进行特殊字符的keydown检测。 您为它提供了shortcu react-hotkeys React组件的键盘映射,以侦听keydown和keyup...
  • AngularJS ng-keyup 指令 AngularJS 实例 按键松开时执行的代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> [removed][removed] </head> <body ng-app=""> <...
  • 主要是对JQuery中keyUp与keyDown的区别进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助
  • 主要介绍了ff下JQuery无法监听input的keyup事件的解决方法。需要的朋友可以过来参考下,希望对大家有所帮助
  • 主要介绍了C# KeyUp事件中MessageBox的回车(Enter)键回调问题解决方案,需要的朋友可以参考下
  • AngularJS对动态增加的对动态增加的DOM实现实现ng-keyup事件示例事件示例我们经常在网页中看到这种形式的内容,如图:用鼠标点击一下,就变成了一个input,如图:如果未输入内容,并且鼠标离开后,则变回了原来的...
  • 原文1:http://www.cnblogs.com/silence516/archive/2013/01/25/2876611.html原文2:http://www.cnblogs.com/leolai/archive/2012/08/01/2618386.html英文输入法:事件触发... keyup中文输入法:firfox:输入触发...

    原文1:http://www.cnblogs.com/silence516/archive/2013/01/25/2876611.html

    原文2:http://www.cnblogs.com/leolai/archive/2012/08/01/2618386.html

    英文输入法:

    事件触发顺序:keydown - > keypress - > keyup

    中文输入法:

    firfox:输入触发keydown,回车确认输入触发keyup

    chrome:输入触发keydown、keyup,回车确认输入只触发keydown

    IE:输入触发keydown、keyup,回车确认输入触发keydown,keyup

    Safari:输入触发keydown、keyup,回车确认输入触发keydown,keyup

    opera:输入触发keydown、keyup,回车确认输入触发keydown,keyup

    keypress事件不能对系统功能键(例如:后退、删除等,其中对中文输入法不能有效响应)进行正常的响应,

    keydown和keyup均可以对系统功能键进行有效的拦截,但事件截获的位置不同。

    键盘中的键分为字符(可打印)键和功能键(不可打印),系统功能键包括如下:

    Esc、Tab、Caps Lock、Shift、Ctrl、Alt、Enter、Backspace、Print Screen、Scroll Lock、Pause Break、Insert、Delete、Home、End、Page Up、Page Down, F1 through F12,Num Lock、The Arrow Keys。

    keypress响应系统功能键总结:

    Firefox:支持 Esc、Enter、Backspace、Pause Break、Insert、Delete、Home、End、Page Up、Page Down、F1 through F12、The Arrow Keys

    Chrome:支持Enter

    Oprea:支持Enter

    Safari:支持Enter

    IE:支持Esc、Enter

    ps:

    firefox:上下左右键会触发kepress.

    chrome: 上下左右键不会触发kepress.

    oprea:上下左右键不会触发kepress.

    safari:上下左右键不会触发kepress.

    IE:上下左右键不会触发kepress.

    ================================================================================

    keyCode(键码), which, charCode(字符编码)

    keydown: 获得keyCode, charCode=0

    keypress: 字符(英文区分大小写+数字  / * , .  ...等非功能键),keyCode=0 ,获取charCode值, 反之获取keyCode, charCode=0

    keyup: 获得keyCode, charCode=0

    jquery 中 event.which = original.charCode != null ? original.charCode : original.keyCode;

    总结:回车、上下左右、等功能键keydown、keypress、keyup都获取keyCode,并且值相等。

    开启大写情况,keydown、keypress(字母,主键盘数字、回车)、keyup,which值相等,小写kepress获取的which不同于keypress、keyup。

    keypress事件的keyCode对字母的大小写敏感,而keydown、keyup事件不敏感

    keypress事件的which值无法区分主键盘上的数字键和附键盘数字键的,而keydown、keyup的which值对主附键盘的数字键敏感。

    IE(ie9以下)只有一个属性KeyCode属性,当为keydown和keyup

    事件是,keycode属性表示你具体按下的键(也称为virtual

    keycode),当捕捉的是keypress事件时keyCode属性指的是你键入的字符(character code)

    标准浏览器中情况有些不同,event对象包含一个keyCode属性和一个charCode属性,keydown和keyup事

    件的时候,keyCode表示的就是你具体按的键,charCode为0;当捕捉的是keypress事件时,keyCode为0,charCode指的

    是你按下的字符,鉴于IE和FF中的区别,如果你比较懒的话,建议只使用keydow和keyup事件

    /**

    本文所涉及浏览器(除ie)都为最新版本

    **/

    用户在使用键盘时会触发键盘事件。目前,对键盘事件的支持主要遵循的是DOM0级。

    在英文输入法下,所有浏览器都遵循以下三个事件:

    keydown: 当用户按下任意键时触发,而且按住不放的话,会重复触发此事件。

    keypress: 当用户按下字符键时触发,而且按住不放的话,会重复触发此事件。按下Esc键也会触发这个事件,Safari3.1之前的版本按下非字符键时也触发。

    keyup: 当用户释放键时触发。

    在中文输入法下,浏览器之间则表现得不一致,主要情况如下:

    IE,Chrome,Safari:触发keydown和keyup, 不触发keypress。

    Firefox:首次按下按键时触发keydown,不触发keypress。在停止输入法并改变文本框内容(如按下回车或者空格键)后会触发keyup。

    Opera:keydown, keypress和keyup都不触发。

    PS : 只有在触发keyup事件才能获得修改后的文本值。

    所有元素都支持以上三个事件,一般情况下只有在文本框时才经常用到。

    键盘事件的触发过程具体是这样的: 在用户按下键盘上的一个字符键时,

    首先会触发keydown事件,然后是keypress事件,最后是keyup事件。其中,keydown和keypress事件是在文本框发生变化之前

    被触发;而keyup在文本框发生变化之后被触发。如果用户按下一个键不放,就会重复触发keydown和keypress事件。在用户按下一个非字符键时,首先触发keydown事件,然后就是keyup事件。如果用户按下一个键不放,就会重复触发keydown。

    当我们监听这三个事件时,最想得到的数据信息就是键码(keyCode)和字符编码(charCode)了。

    键码(keyCode)

    在发生keydown和keyup事件时,event对象的keyCode属性会包含一个代码,keyCode属性的值就是小写字母或数字对应的ASCII码(点击这里查看ASCII码表),在程序中可通过如下代码来获得keyCode值:

    //EventUtil是一个封装的对象,用来处理跨浏览器事件

    var textbox = document.getElementById('myText');

    EventUtil.addHandler(textbox,'keydown',function(event){

    event = event ||window.event;

    alert(event.keyCode);

    });

    以下是keydown和keypress事件存在的一些特殊情况:

    在FF和Opera中,按分号键时keyCode值为59,但IE,Chrome和Safari则返回186

    在Safari3之前的版本中,上、下、左、右箭头和上翻(PageUp)、下翻(PageDown)键返回大于63000的值。

    字符编码(charCode)

    在发生keypress事件时,FF、Chrome和Safari的event对象都支持一个charCode属性,charCode属性的值 就是按下的字符键对应的ASCII编码,这个属性在按下非字符键或发生keydown和keyup事件时值为0;IE和Opera则是在keyCode中 保存字符键的ASCII编码。所以,要想跨浏览器获得字符编码,代码如下:

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    //获取字符编码

    var getCharCode = function(event){

    var charcode =event.charCode;

    if(typeof charcode == "number" && charcode != 0){

    returncharcode;

    }else{

    //在中文输入法下 keyCode == 229 || keyCode == 197(Opera)

    returnevent.keyCode;

    }

    };

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    这个方法首先检查charCode属性是否包含数值(在不支持这个属性的浏览器中,值为undefined),在判断是否等于0(兼容keydown和keyup事件),如果条件成立,则返回改值,否则返回keyCode的值。之前的例子获取字符编码如下:

    var textbox = document.getElementById('myText');

    EventUtil.addHandler(textbox,'keydown',function(event){

    event = event ||window.event;

    alert(getCharCode(event));

    });

    在得到了字符编码后,可以使用String.fromCharCode()将其转换为实际的字符。

    键盘事件的应用

    1、 过滤输入——屏蔽某些字符的输入

    达到的效果:只能输入数字,输入其他字符没有反应。不屏蔽辅助输入的按键,如退格键,方向键,复制,粘贴等。

    原理很简单:在文本框修改前,获取字符编码,判断合理性,不成立则阻止键盘的默认事件。看起来很简单,但由于浏览器的兼容问题,实现起来还是有点难度。代码如下:

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    var handler= function(e){

    e = e ||window.event;

    var charcode = typeof e.charCode == 'number' ?e.charCode : e.keyCode;

    var re = /\d/;

    //FF和safari3.1以前版本会对方向键、退格键、删除键触发keypress事件 charcode > 9 可修复此Bug

    //!e.ctrlKey 不屏蔽Ctrl+C,Ctrl+V

    if(!re.test(String.fromCharCode(charcode)) && charcode > 9 && !e.ctrlKey){

    //阻止默认事件

    if(e.preventDefault){

    e.preventDefault();

    }else{

    e.returnValue = false;

    }

    }

    };

    EventUtil.addHandler(textbox,'keypress',handler);

    //监听粘贴事件

    EventUtil.addHandler(textbox,'paste',function(e){

    e = e ||window.event;

    var clipboardData = e.clipboardData ||window.clipboardData;

    if(!/^\d*$/.test(clipboardData.getData('text'))){

    //阻止默认事件

    if(e.preventDefault){

    e.preventDefault();

    }else{

    e.returnValue = false;

    }

    }

    });

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    在这个例子的基础上加以修改和调整,就可以应用于放过或屏蔽任何输入文本框的字符。

    很遗憾,还有一个bug未能解决,就是在中文输入法时keypress事件失效问题。

    针对中文输入法的Bug,目前找到的解决办法是:在文本框加入属性style="ime-mode:disabled" IE和FF下可禁用输入法;在Chrome,Safar下可为文本框添加keydown事件,判断event.keyCode是否等于299,是的话就阻 止keydown默认事件,这种方法对IE也有效。而对于Opera则没有找到解决办法。

    展开全文
  • keyup中文输入法:firfox:输入触发keydown,回车确认输入触发keyupchrome:输入触发keydown、keyup,回车确认输入只触发keydownopera:输入触发keydown、keyup,回车确认输入触发keydown,keyupsafari:输入触发...

    键盘

    英文输入法:

    事件触发顺序:keydown - > keypress - > keyup

    中文输入法:

    firfox:输入触发keydown,回车确认输入触发keyup

    chrome:输入触发keydown、keyup,回车确认输入只触发keydown

    opera:输入触发keydown、keyup,回车确认输入触发keydown,keyup

    safari:输入触发keydown、keyup,回车确认输入触发keydown,keyup

    IE:输入触发keydown、keyup,回车确认输入触发keydown,keyup

    keypress事件不能对系统功能键(例如:后退、删除等,其中对中文输入法不能有效响应)进行正常的响应;

    keydown和keyup均可以对系统功能键进行有效的拦截,但事件截获的位置不同。

    键盘中的键分为字符(可打印)键和功能键(不可打印),系统功能键包括如下:

    Esc、Tab、Caps Lock、Shift、Ctrl、Alt、Enter、Backspace、Print Screen、Scroll Lock、Pause Break、Insert、Delete、Home、End、Page Up、Page Down, F1 through F12,Num Lock、The Arrow Keys

    keypress响应系统功能键总结:

    firfox:支持 Esc、Enter、Backspace、Pause Break、Insert、Delete、Home、End、Page Up、Page Down、F1 through F12、The Arrow Keys

    chrome:支持Enter

    opera:支持Enter

    safari:支持Enter

    IE:支持Esc、Enter

    另外:

    firefox:上下左右键会触发kepress.

    chrome: 上下左右键不会触发kepress.

    oprea:上下左右键不会触发kepress.

    safari:上下左右键不会触发kepress.

    IE:上下左右键不会触发kepress.

    keyCode(键码), which, charCode(字符编码)

    keydown: 获得keyCode, charCode=0

    keypress: 字符(英文区分大小写+数字 / * , . ...等非功能键),keyCode=0 ,获取charCode值, 反之获取keyCode, charCode=0

    keyup: 获得keyCode, charCode=0

    jquery 中 event.which = original.charCode != null ? original.charCode : original.keyCode;

    总结:回车、上下左右、等功能键keydown、keypress、keyup都获取keyCode,并且值相等。

    开启大写情况,keydown、keypress(字母,主键盘数字、回车)、keyup,which值相等,小写kepress获取的which不同于keypress、keyup。

    keypress事件的keyCode对字母的大小写敏感,而keydown、keyup事件不敏感

    keypress事件的which值无法区分主键盘上的数字键和附键盘数字键的,而keydown、keyup的which值对主附键盘的数字键敏感。

    IE(ie9以下)只有一个属性KeyCode属性,当为keydown和keyup 事件是,keycode属性表示你具体按下的键(也称为virtual keycode),当捕捉的是keypress事件时keyCode属性指的是你键入的字符(character code)

    标准浏览器中情况有些不同,event对象包含一个keyCode属性和一个charCode属性,keydown和keyup事 件的时候,keyCode表示的就是你具体按的键,charCode为0;当捕捉的是keypress事件时,keyCode为0,charCode指的 是你按下的字符,鉴于IE和FF中的区别,如果你比较懒的话,建议只使用keydow和keyup事件

    用户在使用键盘时会触发键盘事件。目前,对键盘事件的支持主要遵循的是DOM0级。

    在英文输入法下,所有浏览器都遵循以下三个事件:

    keydown: 当用户按下任意键时触发,而且按住不放的话,会重复触发此事件。

    keypress: 当用户按下字符键时触发,而且按住不放的话,会重复触发此事件。按下Esc键也会触发这个事件,safari3.1之前的版本按下非字符键时也触发。

    keyup: 当用户释放键时触发。

    在中文输入法下,浏览器之间则表现得不一致,主要情况如下:

    IE,chrome,safari:触发keydown和keyup, 不触发keypress。

    firefox:首次按下按键时触发keydown,不触发keypress。在停止输入法并改变文本框内容(如按下回车或者空格键)后会触发keyup。

    Opera:keydown, keypress和keyup都不触发。

    PS : 只有在触发keyup事件才能获得修改后的文本值。

    所有元素都支持以上三个事件,一般情况下只有在文本框时才经常用到。键盘事件的触发过程具体是这样的: 在用户按下键盘上的一个字符键时, 首先会触发keydown事件,然后是keypress事件,最后是keyup事件。其中,keydown和keypress事件是在文本框发生变化之前 被触发;而keyup在文本框发生变化之后被触发。如果用户按下一个键不放,就会重复触发keydown和keypress事件。在用户按下一个非字符键时,首先触发keydown事件,然后就是keyup事件。如果用户按下一个键不放,就会重复触发keydown。

    当我们监听这三个事件时,最想得到的数据信息就是键码(keyCode)和字符编码(charCode)了。

    键码

    在发生keydown和keyup事件时,event对象的keyCode属性会包含一个代码,keyCode属性的值就是小写字母或数字对应的ASCII码(点击查看ASCII码表),在程序中可通过如下代码来获得keyCode值:

    //EventUtil是一个封装的对象,用来处理跨浏览器事件

    var textbox = document.getElementById('myText');

    EventUtil.addHandler(textbox,'keydown',function(event){

    event = event || window.event;

    alert(event.keyCode);

    });

    以下是keydown和keypress事件存在的一些特殊情况:

    在FF和Opera中,按分号键时keyCode值为59,但IE,chrome和safari则返回186

    在safari3之前的版本中,上、下、左、右箭头和上翻(PageUp)、下翻(PageDown)键返回大于63000的值。

    字符编码

    在发生keypress事件时,FF、chrome和safari的event对象都支持一个charCode属性,charCode属性的值 就是按下的字符键对应的ASCII编码,这个属性在按下非字符键或发生keydown和keyup事件时值为0;IE和Opera则是在keyCode中 保存字符键的ASCII编码。所以,要想跨浏览器获得字符编码,代码如下:

    //获取字符编码

    var getCharCode = function(event){

    var charcode = event.charCode;

    if(typeof charcode == "number" && charcode != 0){

    return charcode;

    }else{

    //在中文输入法下 keyCode == 229 || keyCode == 197(Opera)

    return event.keyCode;

    }

    };

    这个方法首先检查charCode属性是否包含数值(在不支持这个属性的浏览器中,值为undefined),在判断是否等于0(兼容keydown和keyup事件),如果条件成立,则返回改值,否则返回keyCode的值。之前的例子获取字符编码如下:

    var textbox = document.getElementById('myText');

    EventUtil.addHandler(textbox,'keydown',function(event){

    event = event || window.event;

    alert(getCharCode(event));

    });

    在得到了字符编码后,可以使用String.fromCharCode()将其转换为实际的字符。

    键盘事件的应用

    1、 过滤输入——屏蔽某些字符的输入

    达到的效果:只能输入数字,输入其他字符没有反应。不屏蔽辅助输入的按键,如退格键,方向键,复制,粘贴等。

    原理很简单:在文本框修改前,获取字符编码,判断合理性,不成立则阻止键盘的默认事件。看起来很简单,但由于浏览器的兼容问题,实现起来还是有点难度。代码如下:

    var handler= function(e){

    e = e || window.event;

    var charcode = typeof e.charCode == 'number' ? e.charCode : e.keyCode;

    var re = /\d/;

    //FF和safari3.1以前版本会对方向键、退格键、删除键触发keypress事件 charcode > 9 可修复此Bug

    //!e.ctrlKey 不屏蔽Ctrl+C,Ctrl+V

    if(!re.test(String.fromCharCode(charcode)) && charcode > 9 && !e.ctrlKey){

    //阻止默认事件

    if(e.preventDefault){

    e.preventDefault();

    }else{

    e.returnValue = false;

    }

    }

    };

    EventUtil.addHandler(textbox,'keypress',handler);

    //监听粘贴事件

    EventUtil.addHandler(textbox,'paste',function(e){

    e = e || window.event;

    var clipboardData = e.clipboardData || window.clipboardData;

    if(!/^\d*$/.test(clipboardData.getData('text'))){

    //阻止默认事件

    if(e.preventDefault){

    e.preventDefault();

    }else{

    e.returnValue = false;

    }

    }

    });

    在这个例子的基础上加以修改和调整,就可以应用于放过或屏蔽任何输入文本框的字符。

    很遗憾,还有一个问题未能解决,就是在中文输入法时keypress事件失效问题。针对中文输入法的bug,目前找到的解决办法是:在文本框加入属性style="ime-mode:disabled" IE和FF下可禁用输入法;在chrome,Safar下可为文本框添加keydown事件,判断event.keyCode是否等于299,是的话就阻 止keydown默认事件,这种方法对IE也有效。而对于Opera则没有找到解决办法。

    展开全文
  • keyup事件问题

    2021-03-03 15:36:09
    如果我先按下⌘(不松开)再按D,此时松开D 不会触发 keyup如果我先按下D(不松开)再按⌘,此时松开⌘则会触发 keyup代码const Immutable = require('immutable');let listenList = Immutable.Map({});let keyDownGr...

    问题

    我自己写了一个可以自定义监听快捷键组合的模块,

    在写按键弹起的函数时候,发现了一个奇怪的现象。

    如果我先按下⌘(不松开)再按D,

    此时松开D 不会触发 keyup

    如果我先按下D(不松开)再按⌘,

    此时松开⌘则会触发 keyup

    代码

    const Immutable = require('immutable');

    let listenList = Immutable.Map({});

    let keyDownGroup = [];

    const getKeyGroupString = keyGroupArray => {

    let keyGroup = Array.from(keyGroupArray);

    keyGroup.sort();

    return keyGroup.join(',');

    }

    /**

    * 添加快捷键监听

    * kg Array 快捷键组合

    * handler Function 被监听的事件

    **/

    const addListener = (kg, handler) => {

    let keyGroup = getKeyGroupString(kg);

    listenList = listenList.update(

    keyGroup,

    handlerList => handlerList ? handlerList.push(handler) : Immutable.List([handler])

    );

    };

    /**

    * 移除快捷键监听

    * kg Array 快捷键组合

    * deleteHandler Function 要被移除监听的事件(如果为空则移除该快捷键组合的所有事件)

    **/

    const removeListener = (kg, deleteHandler) => {

    let keyGroup = getKeyGroupString(kg);

    if (listenList.hash(keyGroup)) {

    if (deleteHandler) {

    listenList = listenList.update(

    keyGroup,

    handlerList => handlerList.filter(handler => handler !== deleteHandler)

    );

    } else {

    listenList = listenList.delete(keyGroup);

    }

    }

    }

    window.addEventListener('keydown', event => {

    keyDownGroup = Array.from(new Set([...keyDownGroup, event.keyCode]))

    let keyDownGroupString = getKeyGroupString(keyDownGroup);

    if (listenList.has(keyDownGroupString)) {

    listenList.get(keyDownGroupString).forEach(

    handler => handler()

    );

    }

    });

    window.addEventListener('keyup', event => {

    // 出现奇怪问题的地方……

    console.log('keyup...');

    // keyDownGroup = [];

    keyDownGroup.pop();

    });

    module.exports = {

    addListener,

    removeListener

    }

    userAgent

    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.110 Electron/0.36.7 Safari/537.36"

    展开全文
  • <body> <div id="abc"> <form action=""> <div> 用户名:<input type="text" v-on:keyup.delete="clearContent" v-model="name" /> div> <div> 密码:<input type="password" v-model="pwd" v-on:keyup.enter="dian" /...
  • keyup与keydown(详解)

    2022-08-25 00:48:26
    1.onkeyup => keyup 2.onkeydown => keydown keyup与keydown的特殊情况: 当我们通过keyup与keydown绑定的键与浏览器中的快捷键重合、冲突时 使用keyup可能不会响应,因为浏览器对于快捷键的响应都是通过onkeydown的...
  • <code><el-input ref="codeInput" placeholder="请输入条形码"...keyup.enter.native=...在安卓模拟器上运行的时候keyup事件会自动执行两次是什么原因呢?</p>
  • keydown、keypress 和 keyup

    2022-06-20 11:49:14
    当用户按下一个键或不同的组合键时,按以下顺序触发 keydown、keypress 和 keyup: 当用户按键时,会首先触发 keydown 事件 用户释放按键时最后触发 keyup 事件 在这之间,keypress 事件将被触发 这些事件用于不同...
  • 给输入框绑定keyup事件,在网页端可以正常实时监听变化并且给出相应的错误提示,但是在ios和android测试的时候是有问题的。 由于输入展示和触发keyup事件中间是有时间间隔的。所以要推迟500毫秒执行实时监听。 ...
  • $(this).keyup(function(){alert(123)});});你这样绑定事件,结果是点击一次tr绑定一次,点了多少次就绑定了多少次,这个例子还是不明显,你在tr里放置一个input,然后编写如下代码,看看效果如何$...
  • 键盘事件keyup <label>你所在城市:</label><input type="text" v-on:keyup="City"/> <label>你所在公司:</label><input type="text" v-on:keyup="Company"/> <!--City,...
  • Javascript Keyup工具快速获取javascript keyup -event属性的工具。 该工具适用于希望将键盘快捷方式添加到其Web应用程序的开发人员。 访问以使用此工具。
  • @keydown是按下键盘时触发事件,但是不带按下的键盘内容;如需要输入abc,按下c的时候使用keydown...@keyup是松开键盘触发事件 @input是文本事件,文本内容变的时候就会触发事件 顺序 keydown =》input=》keyup ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 74,340
精华内容 29,736
关键字:

keyup