Angularjs 事件指令详细整理

ngClick
适用标签:所有
触发条件:单击
#html
<div ng-controller="LearnCtrl">
<div ng-click="click()">click me</div>
<button ng-click="click()">click me</button>
</div>
#script
angular.module('learnModule', [])
.controller('LearnCtrl', function ($scope) {
$scope.click = function () {
alert('click');
}
});
ngDblclick
适用标签:所有
触发条件:双击
#html
<div ng-controller="LearnCtrl">
<div ng-dblclick="dblclick()">click me</div>
<button ng-dblclick="dblclick()">click me</button>
</div>
#script
angular.module('learnModule', [])
.controller('LearnCtrl', function ($scope) {
$scope.dblclick = function () {
alert('click');
}
});
ngBlur
适用标签:
触发条件:失去焦点
#html
<div ng-controller="LearnCtrl">
<a href="" ng-blur=" rel="external nofollow" blur()">link</a>
<input type="text" ng-blur="blur()"/>
<textarea cols="30" rows="10" ng-blur="blur()"></textarea>
<select ng-blur="blur()">
<option>----</option>
<option>jacky</option>
<option>rose</option>
</select>
</div>
#script
angular.module('learnModule', [])
.controller('LearnCtrl', function ($scope) {
$scope.blur = function () {
alert('blur');
}
});
ngFocus
适用标签:
触发条件:获取焦点
#html
<div ng-controller="LearnCtrl">
<a href="" ng-focus=" rel="external nofollow" focus()">link</a>
<input type="text" ng-focus="focus()"/>
<textarea cols="30" rows="10" ng-focus="focus()"></textarea>
<select ng-focus="focus()">
<option>----</option>
<option>jacky</option>
<option>rose</option>
</select>
</div>
#script
angular.module('learnModule', [])
.controller('LearnCtrl', function ($scope) {
$scope.focus= function () {
alert('focus');
}
});
ngChange
适用标签:input
触发条件:model更新
输入框的内容改变并不代表model的值更新。按我的理解,一般当两个状态互相切换时,model值会更新。两个状态我称之为合法状态和不合法状态。
不合法的状态:输入的内容不符合type类型,如email类型。输入的内容不符合校验条件,如ngMinlength。不合法的状态下,model会被更新成undefined。
合法的状态:输入的内容是符合类型和校验条件的。
#html
<div ng-controller="LearnCtrl">
<input type="text" ng-model="text" ng-change="change()" ng-minlength="5"/>
</div>
#script
angular.module('learnModule', [])
.controller('LearnCtrl', function ($scope) {
//$scope.text='';
$scope.change = function () {
alert('change');
}
});
初始化和不初始化text的条件下,change触发是不一样的哦,这里涉及到model初始化和更新机制。
ngCopy
适用标签:
官方api上说使用的标签是这些,我没明白a和select复制有啥子用。另外,我换个div实际上也能触发copy事件。一般常用的就是input和textarea。
触发条件:复制。鼠标右键复制和快捷键Ctrl+C都会触发。
#html
<div ng-controller="LearnCtrl">
<input type="text" ng-copy="copy()"/>
<textarea cols="30" rows="10" ng-copy="copy()"></textarea>
</div>
#script
angular.module('learnModule', [])
.controller('LearnCtrl', function ($scope) {
$scope.copy = function () {
alert('copy');
}
});
ngCut
适用标签:
触发条件:剪切。鼠标右键剪切和快捷键Ctrl+X都会触发。
#html
<div ng-controller="LearnCtrl">
<input type="text" ng-cut="cut()"/>
<textarea cols="30" rows="10" ng-cut="cut()"></textarea>
</div>
#script
angular.module('learnModule', [])
.controller('LearnCtrl', function ($scope) {
$scope.cut = function () {
alert('cut');
}
});
ngPaste
适用标签:
a input select textarea
触发条件:粘贴。鼠标右键粘贴和快捷键Ctrl+V都会触发。
#html
<div ng-controller="LearnCtrl">
<input type="text" ng-paste="paste()"/>
<textarea cols="30" rows="10" ng-paste="paste()"></textarea>
</div>
#script
angular.module('learnModule', [])
.controller('LearnCtrl', function ($scope) {
$scope.paste = function () {
alert('paste');
}
});
ngKeydown
适用标签:所有
个人感觉还是input和textarea比较常用
触发条件:键盘按键按下
要把$event传过去,一般都是要判断按了哪个按键的。
#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。
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
适用标签:所有
触发条件:鼠标移动
#html
<div ng-controller="LearnCtrl">
<button ng-mousemove="mousemove()">button</button>
</div>
#script
angular.module('learnModule', [])
.controller('LearnCtrl', function ($scope) {
$scope.mousemove = function () {
alert('mousemove');
}
});
ngMouseover
适用标签:所有
触发条件:鼠标进入
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持,如有疑问请留言或者到本站社区交流讨论,大家共同进步!
# Angularjs
# 事件指令
# Angular
# 事件指令的总结
# AngularJS实现自定义指令与控制器数据交互的方法示例
# angularjs之$timeout指令详解
# 深究AngularJS如何获取input的焦点(自定义指令)
# Angularjs中使用轮播图指令swiper
# Angularjs中使用指令绑定点击事件的方法
# angularjs 指令实现自定义滚动条效果
# 按下
# 鼠标
# 鼠标右键
# 都是
# 不合法
# 不符合
# 主键
# 如有
# 也能
# 很久
# 要把
# 我没
# 希望能
# 双击
# 拖动
# 并不代表
# 上说
# 涉及到
# 谢谢大家
# 换个
相关文章:
如何用5美元大硬盘VPS安全高效搭建个人网站?
大连网站制作公司哪家好一点,大连买房网站哪个好?
如何在橙子建站中快速调整背景颜色?
,购物网站怎么盈利呢?
如何零基础在云服务器搭建WordPress站点?
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
建站VPS配置与SEO优化指南:关键词排名提升策略
如何在七牛云存储上搭建网站并设置自定义域名?
历史网站制作软件,华为如何找回被删除的网站?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
已有域名如何免费搭建网站?
如何确认建站备案号应放置的具体位置?
高防服务器如何保障网站安全无虞?
c# 服务器GC和工作站GC的区别和设置
如何高效利用亚马逊云主机搭建企业网站?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
MySQL查询结果复制到新表的方法(更新、插入)
油猴 教程,油猴搜脚本为什么会网页无法显示?
建站主机如何安装配置?新手必看操作指南
已有域名如何快速搭建专属网站?
已有域名和空间如何搭建网站?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
C#怎么创建控制台应用 C# Console App项目创建方法
定制建站模板如何实现SEO优化与智能系统配置?18字教程
湖州网站制作公司有哪些,浙江中蓝新能源公司官网?
Swift中switch语句区间和元组模式匹配
表情包在线制作网站免费,表情包怎么弄?
平台云上自助建站如何快速打造专业网站?
北京建设网站制作公司,北京古代建筑博物馆预约官网?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
建站之星IIS配置教程:代码生成技巧与站点搭建指南
如何快速生成凡客建站的专业级图册?
如何在搬瓦工VPS快速搭建网站?
如何自定义建站之星网站的导航菜单样式?
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
5种Android数据存储方式汇总
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
如何设计高效校园网站?
大型企业网站制作流程,做网站需要注册公司吗?
建站之星在线版空间:自助建站+智能模板一键生成方案
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
如何在云主机快速搭建网站站点?
SQL查询语句优化的实用方法总结
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
如何制作网站标识牌,动态网站如何制作(教程)?
建站168自助建站系统:快速模板定制与SEO优化指南
如何使用Golang安装API文档生成工具_快速生成接口文档
*请认真填写需求信息,我们会在24小时内与您取得联系。