AngularJS1.X学习笔记4-内置事件指令及其他
AngularJS为我们定义了一系列事件指令,方便我们对用户的操作作出响应。甚至他还有一个可选模块提供了触摸事件和手势事件的支持,为移动端开发提供了可能。现在开始学习一下AngularJS的事件指令。
一、事件指令
先盗张图,这个图展示了AngularJS中定义的事件指令,下面来做一些测试。
指令 | 作用 | 描述 |
ng-blur | 属性、类 |
对blur事件指定自定义行为,在元素失去焦点时被触发 |
ng-change | 属性、类 |
对change事件指定自定义行为,在表单元素的内容状态发生变化 时被触发(例如复选框被选中、输入框元素中的文本被修改等等) |
ng-click | 属性、类 | 为click事件指定自定义行为,在用户点击鼠标/光标时被触发 |
ng-copy ng-cut ng-paste |
属性、类 | 为copy、cut和paste事件指定自定义行为 |
ng-dbclick | 属性、类 | 为dbclick事件指定自定义行为,在用户双击鼠标/光标时被触发 |
ng-focus | 属性、类 | 为focus事件指定自定义行为,在元素获得焦点时被触发 |
ng-keydown ng-keypress ng-keyup |
属性、类 |
为keydown、keyup、keypress事件指定自定义行为, 在用户按下、释放某个案件时被触发 |
ng-mousedown ng-mouseenter ng-mouseleave ng-mousemove ng-mousemove ng-mouseover ng-mouseup |
属性、类 |
为6个标准鼠标事件(mousedown、mouseenter、mouseleave、 mousemove、mouseover和mouseup)指定自定义行为, 在用户使用鼠标、光标与元素发生交互时被触发 |
ng-submit |
属性、类 |
为submit事件指定自定义行为,在表单被提交时触发 |
<!DOCTYPE html>
<html lang="en" ng-app='myApp'>
<head>
<meta charset="UTF-8">
<title>event</title>
<style type="text/css"> </style>
</head>
<body ng-controller="eventCtrl">
<h1 ng-click="doClick($event)" ng-mousedown="doMousedown($event)" ng-mouseup="doMouseup($event)">
点我试试看
</h1>
<h1 ng-mouseleave="doMouseleave($event)" ng-mouseenter="doMouseenter($event)" ng-mouseover="doMouseover($event)">
鼠标移入移出
</h1>
<div>
<input type="text" name="" ng-keydown="dokeydown($event)" ng-keyup="dokeyup($event)" ng-keypress="dokeypress($event)"
ng-focus="dofocus($event)" ng-blur="doblur($event)">
</div> <script type="text/javascript" src="../node_modules/angular/angular.min.js"></script>
<script type="text/javascript">
var myApp = angular.module("myApp",[]);
myApp.controller('eventCtrl',function($scope){
$scope.doClick = function(e){
console.log(e);
console.log("clicked!");
}
$scope.doMousedown = function(e){
console.log(e);
console.log("mousedown!");
}
$scope.doMouseup = function(e){
console.log(e);
console.log("mouseup!");
}
$scope.doMouseleave = function(e){
console.log(e);
console.log("mouseleave!");
}
$scope.doMouseenter = function(e){
console.log(e);
console.log("mouseenter!");
}
$scope.doMousemove = function(e){
console.log(e);
console.log("mousemove!");
}
$scope.doMouseover = function(e){
console.log(e);
console.log("mouseover!");
}
$scope.dokeydown = function(e){
console.log(e);
console.log("keydown!");
}
$scope.dokeyup = function(e){
console.log(e);
console.log("keyup!");
}
$scope.dokeypress = function(e){
console.log(e);
console.log("keypress!");
}
$scope.dofocus = function(e){
console.log(e);
console.log("focus!");
}
$scope.doblur = function(e){
console.log(e);
console.log("blur!");
} })
</script>
</body>
</html>
我们以click事件对象为例看看Angular的事件对象和普通事件对象有没有区别,代码如下:
<!DOCTYPE html>
<html lang="en" ng-app='myApp'>
<head>
<meta charset="UTF-8">
<title>event</title>
<style type="text/css"> </style>
</head>
<body ng-controller="eventCtrl">
<h1 id="h" ng-click="doClick($event)">
点我试试看
</h1>
<script type="text/javascript" src="../node_modules/angular/angular.min.js"></script>
<script type="text/javascript">
var myApp = angular.module("myApp",[]);
myApp.controller('eventCtrl',function($scope){
$scope.doClick = function(e){
console.log("from angular clicked!");
console.log(e);
}
})
</script>
</body>
</html> <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>event</title>
<style type="text/css"> </style>
</head>
<body ng-controller="eventCtrl">
<h1 id="h">
点我试试看
</h1>
<script type="text/javascript">
var h = document.getElementById("h");
h.addEventListener("click",function(e){
console.log("not from Angular");
console.log(e);
});
</script>
</body>
</html>
结果我们得到的事件对象为:(左边是普通的,右边是Angular的)
从上图可以看到,Angular并没有对事件对象做什么改装,还是原来那个事件对象,还是熟悉的味道! 基于这样的结论,可以认为处理Angular事件和处理普通事件完全一样(这个理论后来被人称作大~熊第一定律)。
一些管理属性的指令
主要有这些
ng-checked:管理checked属性
ng-disabled:管理disabled属性
ng-open:管理open属性,details上的
ng-readonly:管理readonly属性
ng-selected:管理selected属性
ng-href:为a设置href属性
ng-src:为img设置src属性
ng-srcset:允许为不同大小和像素密度而指定多个图片
好了,今天就到这吧!愚人节已经到了,祝大家节日快乐!早上起来以后记得多长点心眼,小心被耍!
AngularJS1.X学习笔记4-内置事件指令及其他的更多相关文章
- python自动化测试学习笔记-4内置函数,处理json
函数.全局变量 写代码时注意的几点事项: 1.一般写代码的时候尽量少用或不用全局变量,首先全局变量不安全,大家协作的情况下,代码公用容易被篡改,其次全局变量会一直占用系统内容. 2.函数里如果有多个r ...
- 学习笔记——Maven 内置变量
Maven内置变量说明: ${basedir} 项目根目录(即pom.xml文件所在目录) ${project.build.directory} 构建目录,缺省为target目录 ${project. ...
- Python学习笔记-Day3-python内置函数
python内置函数 1.abs 求绝对值 2.all 判断迭代器中的所有数据是否都为true 如果可迭代的数据的所有数据都为true或可迭代的数据为空,返回True.否则返回False 3.a ...
- 【学习】js学习笔记:内置顶层函数eval()的兼容用法
今天学了一个内置顶层函数,eval();其作用是将字符串转换成javascript命令执行,但必须符合语法,否则会报错. 如果写成window.eval(),则其定义的变量会在全局生效. 但是,在IE ...
- java web 学习笔记 jsp内置对象
jsp2 表达式语言的内置对象 使用方式${object.attributename} 或者${object["attributename"]} pageContext pageS ...
- Python学习笔记-常用内置函数
输出:print() 功能:输出打印 语法:print(*objects, sep=' ', end='\n', file=sys.stdout) 参数:objects----复数,表示可以一次输出多 ...
- [Python学习笔记-001] 内置函数getattr()
如果某个实例foo有多个方法, 当对foo的每一个方法我们都需要使用try ... except ...进行包装的时候,内置函数getattr()可以用来精简代码. 1. getattr()的用法 # ...
- python学习笔记011——内置函数pow()
1 语法 pow(x, y[, z]) x -- 数值表达式. y -- 数值表达式. z -- 数值表达式. 函数是计算 x 的 y 次方,如果 z 在存在,则再对结果进行取模,其结果等效于pow( ...
- Python学习笔记011——内置函数exec()
1 描述 把一个字符串当成语句执行 exec() 执行储存在字符串或文件中的 Python 语句,相比于 eval() , exec() 可以执行更复杂的 Python 代码. exec函数和ev ...
- shell 学习笔记4-shell内置变量命令
一.shell 的一些内置命令 常用的一内部命令有:echo.eval.exec.export.read.shift 1.echo命令-在屏幕中输出信息 1)说明 格式:echo args #< ...
随机推荐
- 初学jQuery之jQuery事件与动画
今天我们就谈谈jquery中的事件和简单动画吧,它们毕竟基础是进阶华丽的根本!! 1.事件 1.window事件 ready 准备就绪 2.鼠标事件 方法 ...
- 对于block的理解,block的面试题
1.block跟swift中的闭包(closure)基本一样,都常用于值的回调,特别是在多线程的网络请求回调中,使用起来极为方便. 2.block的开头是"^",接着是由小括号所报 ...
- hdoj 1231 最大连续子列和
最大连续子序列 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- CSS实现覆盖弹窗(效果如JQuery-UI的Dialog)
原理:定义一个新的div用来覆盖整个页面,再把想要弹出的窗口放在这个div上面 1.定义一个div,设置其隐藏(display:none),用于覆盖整个页面,并设置其CSS属性为: #divBg { ...
- jquery 的基础知识,以及和Javascript的区别
想到之前所学的javascript 我们会想到这几个方面:找元素: 操作内容: 操作属性:操作样式:统一操作元素: jquery 也是从这几个方面来学习的. <head> <meta ...
- 用json传值时,最后一个不加逗号
<javascript> $('.obj').css( 'position':'relative', 'top':'100px', 'left':'100px' ); </javas ...
- js原生Ajax 的封装和原理
原理及概念 AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是一种用于创建快速动态网页的技术. 动态网页:是指可以通过服务器语言结合数 ...
- 数据库中的T-sql语句 条件修改 高级查询
1.创建数据库:create database --数据库名,不能中文,不能数字开头,不能符号开头 2.删除数据库:drop database-- 数据库名 use student--使用数据库 3. ...
- css样式表1 2017-03-11
样式表 DIV + CSS 一. 样式表的分类 以下均以div标签为例,可以换成其他标签 1. 内联样式表 格式: style="属性1:属性值1:属性2:属性值2:属性3: ...
- AR入门系列-07-Vuforia柱形体识别
今天为大家带来Vuforia柱形体识别的使用教程 首先我们要进入Vuforia官网在TargetManager中添加Target,这次我们添加的类型为Cylinder圆柱 Bottom Diamete ...