Angularjs 事件指令详细整理(2)

#html <div ng-controller="LearnCtrl"> <input type="text" ng-keydown="keydown($event)"/> <textarea cols="30" rows="10" ng-keydown="keydown($event)"></textarea> </div> #script angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) { $scope.keydown = function ($event) { alert($event.keyCode); } });

ngKeyup

适用标签:所有

个人感觉还是input和textarea比较常用

触发条件:键盘按键按下并松开

#html <div ng-controller="LearnCtrl"> <input type="text" ng-keyup="keyup($event)"/> <textarea cols="30" rows="10" ng-keyup="keyup($event)"></textarea> </div> #script angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) { $scope.keyup = function ($event) { alert($event.keyCode); } });

ngKeypress

适用标签:所有

个人感觉还是input和textarea比较常用

触发条件:键盘按键按下

#html <div ng-controller="LearnCtrl"> <input type="text" ng-keypress="keypress($event)"/> <textarea cols="30" rows="10" ng-keypress="keypress($event)"></textarea> </div> #script angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) { $scope.keypress = function ($event) { alert($event.keyCode); } });

keydown,keypress,keydown三者区别

引发事件的按键

非字符键不会引发 KeyPress 事件,但非字符键却可以引发 KeyDown 和 KeyUp 事件。

事件引发的时间

KeyDown 和 KeyPress 事件在按下键时发生,KeyUp 事件在释放键时发生。

事件发生的顺序

KeyDown -> KeyPress -> KeyUp。如果按一个键很久才松开,发生的事件为:KeyDown -> KeyPress -> KeyDown -> KeyPress -> KeyDown -> KeyPress -> ... -> KeyUp。

KeyDown触发后,不一定触发KeyUp,当KeyDown 按下后,拖动鼠标,那么将不会触发KeyUp事件。

KeyPress主要用来捕获数字(注意:包括Shift+数字的符号)、字母(注意:包括大小写)、小键盘等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜单键}、{开始键}和方向键外的ANSI字符。

KeyDown 和KeyUp 通常可以捕获键盘除了PrScrn所有按键(这里不讨论特殊键盘的特殊键)。

KeyPress 只能捕获单个字符。

KeyDown 和KeyUp 可以捕获组合键。

KeyPress 可以捕获单个字符的大小写。

KeyDown和KeyUp 对于单个字符捕获的KeyValue 都是一个值,也就是不能判断单个字符的大小写。

KeyPress 不区分小键盘和主键盘的数字字符。

KeyDown 和KeyUp 区分小键盘和主键盘的数字字符。

其中PrScrn 按键KeyPress、KeyDown和KeyUp 都不能捕获。

ngMousedown

适用标签:所有
触发条件:鼠标按下,左右中间按下都会触发

#html <div ng-controller="LearnCtrl"> <button ng-mousedown="mousedown($event)">button</button> </div> #script angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) { $scope.mousedown = function ($event) { alert($event.which); } });

ngMouseup

适用标签:所有
触发条件:鼠标按下弹起,左右中间按下弹起都会触发

#html <div ng-controller="LearnCtrl"> <button ng-mouseup="mouseup($event)">button</button> </div> #script angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) { $scope.mouseup = function ($event) { alert($event.which); } });

ngMouseenter

适用标签:所有
触发条件:鼠标进入

#html <div ng-controller="LearnCtrl"> <button ng-mouseenter="mouseenter()">button</button> </div> #script angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) { $scope.mouseenter = function () { alert('mouseenter'); } });

ngMouseleave

适用标签:所有
触发条件:鼠标离开

#html <div ng-controller="LearnCtrl"> <button ng-mouseleave="mouseleave()">button</button> </div> #script angular.module('learnModule', []) .controller('LearnCtrl', function ($scope) { $scope.mouseleave = function () { alert('mouseleave'); } });

ngMousemove

适用标签:所有
触发条件:鼠标移动

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyjzfy.html