资讯专栏INFORMATION COLUMN

angularjs学习笔记—事件指令

Lemon_95 / 549人阅读

摘要:适用标签所有触发条件单击适用标签所有触发条件双击适用标签触发条件失去焦点适用标签触发条件获取焦点适用标签触发条件更新输入框的内容改变并不代表的值更新。如果按一个键很久才松开,发生的事件为。

ngClick

适用标签:所有
触发条件:单击

#html
click me
#script angular.module("learnModule", []) .controller("LearnCtrl", function ($scope) { $scope.click = function () { alert("click"); } });
ngDblclick

适用标签:所有
触发条件:双击

#html
click me
#script angular.module("learnModule", []) .controller("LearnCtrl", function ($scope) { $scope.dblclick = function () { alert("click"); } });
ngBlur

适用标签:

a

input

select

textarea

触发条件:失去焦点

#html
link
#script angular.module("learnModule", []) .controller("LearnCtrl", function ($scope) { $scope.blur = function () { alert("blur"); } });
ngFocus

适用标签:

a

input

select

textarea

触发条件:获取焦点

#html
link
#script angular.module("learnModule", []) .controller("LearnCtrl", function ($scope) { $scope.focus= function () { alert("focus"); } });
ngChange

适用标签:input
触发条件:model更新

输入框的内容改变并不代表model的值更新。按我的理解,一般当两个状态互相切换时,model值会更新。两个状态我称之为合法状态和不合法状态。

不合法的状态:输入的内容不符合type类型,如email类型。输入的内容不符合校验条件,如ngMinlength。不合法的状态下,model会被更新成undefined

合法的状态:输入的内容是符合类型和校验条件的。

#html
#script angular.module("learnModule", []) .controller("LearnCtrl", function ($scope) { //$scope.text=""; $scope.change = function () { alert("change"); } });

初始化和不初始化text的条件下,change触发是不一样的哦,这里涉及到model初始化和更新机制。

ngCopy

适用标签:

a

input

select

textarea

官方api上说使用的标签是这些,我没明白a和select复制有啥子用。另外,我换个div实际上也能触发copy事件。一般常用的就是input和textarea。

触发条件:复制。鼠标右键复制和快捷键Ctrl+C都会触发。

#html
#script angular.module("learnModule", []) .controller("LearnCtrl", function ($scope) { $scope.copy = function () { alert("copy"); } });
ngCut

适用标签:

a

input

select

textarea

触发条件:剪切。鼠标右键剪切和快捷键Ctrl+X都会触发。

#html
#script angular.module("learnModule", []) .controller("LearnCtrl", function ($scope) { $scope.cut = function () { alert("cut"); } });
ngPaste

适用标签:

a

input

select

textarea

触发条件:粘贴。鼠标右键粘贴和快捷键Ctrl+V都会触发。

#html
#script angular.module("learnModule", []) .controller("LearnCtrl", function ($scope) { $scope.paste = function () { alert("paste"); } });
ngKeydown

适用标签:所有

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

触发条件:键盘按键按下

要把$event传过去,一般都是要判断按了哪个按键的。

#html
#script angular.module("learnModule", []) .controller("LearnCtrl", function ($scope) { $scope.keydown = function ($event) { alert($event.keyCode); } });
ngKeyup

适用标签:所有

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

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

#html
#script angular.module("learnModule", []) .controller("LearnCtrl", function ($scope) { $scope.keyup = function ($event) { alert($event.keyCode); } });
ngKeypress

适用标签:所有

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

触发条件:键盘按键按下

#html
#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
#script angular.module("learnModule", []) .controller("LearnCtrl", function ($scope) { $scope.mousedown = function ($event) { alert($event.which); } });
ngMouseup

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

#html
#script angular.module("learnModule", []) .controller("LearnCtrl", function ($scope) { $scope.mouseup = function ($event) { alert($event.which); } });
ngMouseenter

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

#html
#script angular.module("learnModule", []) .controller("LearnCtrl", function ($scope) { $scope.mouseenter = function () { alert("mouseenter"); } });
ngMouseleave

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

#html
#script angular.module("learnModule", []) .controller("LearnCtrl", function ($scope) { $scope.mouseleave = function () { alert("mouseleave"); } });
ngMousemove

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

#html
#script angular.module("learnModule", []) .controller("LearnCtrl", function ($scope) { $scope.mousemove = function () { alert("mousemove"); } });
ngMouseover

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/85583.html

相关文章

  • AngularJS学习笔记(2) --- 指令参数和scope绑定策略

    摘要:引言指令可以说是的核心,而其开发也是比较困难的,本文主要介绍指令的一些参数和的绑定策略。指令执行的优先级,用于多个指令同时作用于同一个元素时。改变父会影响指令,而改变指令不会影响父。在父和指令之间建立双向绑定。 引言 指令(Directive)可以说是 AngularJS 的核心,而其开发也是比较困难的,本文主要介绍指令的一些参数和scope的绑定策略。 参数 从 AngularJS ...

    AndroidTraveler 评论0 收藏0
  • Angular 4 简单入门笔记

    摘要:首先,我们需要在入口页面的中配置根路径然后创建一个路由模块路由配置在主模块中导入配置好的路由模块而在页面中需要一个容器去承载上面代码中的定义了用户点击后的路由跳转,定义该路由激活时的样式类。 刚实习的时候用过AngularJS,那时候真的是连原生JavaScript都不会写,依样画葫芦做了几个管理后台。然后突然换项目了,AngularJS就不写了,感觉前前后后接触了一年多的Angula...

    whlong 评论0 收藏0
  • Angularjs学习笔记指令

    摘要:自定义指令中有很多内置指令,一般都是以开头的比如等等。本文介绍的自定义指令的用法。该参数的意思是替换指令的内容,更改上面的例子。将属性绑定到父控制器的域中学习概念多指令中的参数中增加了的值和的点击函数。 自定义指令 angularjs中有很多内置指令,一般都是以ng开头的;比如:ng-app,ng-click,ng-repeat等等。本文介绍angularjs的自定义指令的用法。 指令...

    LeexMuller 评论0 收藏0
  • Angularjs学习笔记指令

    摘要:自定义指令中有很多内置指令,一般都是以开头的比如等等。本文介绍的自定义指令的用法。该参数的意思是替换指令的内容,更改上面的例子。将属性绑定到父控制器的域中学习概念多指令中的参数中增加了的值和的点击函数。 自定义指令 angularjs中有很多内置指令,一般都是以ng开头的;比如:ng-app,ng-click,ng-repeat等等。本文介绍angularjs的自定义指令的用法。 指令...

    Cristic 评论0 收藏0
  • angularjs学习笔记指令a,ngHref

    摘要:点击我啊当属性为空时,点击的时候页面不会刷新了,我们再也不需要这样写了点击我啊一般和指令结合使用点击我啊你点击我了一般和标签结合使用。使用了就就可以避免出现这种问题。如果链接中有表达式,就使用代替 a 点击我啊 当href属性为空时,点击的时候页面不会刷新了,我们再也不需要这样写了 点击我啊 一般和ng-click指令结合使用 #html 点击我啊 #scr...

    Channe 评论0 收藏0

发表评论

0条评论

Lemon_95

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<