18年的第一个月,我是要在bug的海洋里遨游了,大家是怎么样的呢~ 哈哈, 好了接下来,开始更新了。
事件流
当触发某个事件时(某个事件发生了),从子元素向父级元素触发 或 从父级元素向子元素触发的过程 ,这个过程 称为事件流
事件流有两种模式:
事件冒泡:从子元素向父级元素触发 small --- big ---body --- document -- window
事件捕获:从父级元素向子元素触发 window --- document --- body --- big --- small
事件冒泡
当子元素触发某个事件时,同样的事件回向父级元素触发,这个过程称之为事件冒泡
阻止事件冒泡
兼容写法:
e.stopPropagation?e.stopPropagation():e.cancelBubble=true;
事件绑定
事件绑定: 如何为元素添加一个事件
1、在标签上写事件名称
2、通过 对象.事件 = function(){ .... } ,写在script标签内部的
3、同过 addEventListener() 方法
事件监听
通过 addEventListener 方法为元素添加事件 称为事件的监听
事件监听好处:
可以为同一个元素添加多个同样事件
为同一个元素添加多个同样事件时,执行顺序从上到下顺序执行。
事件监听用法:
对象.addEventListener("事件",function(){},true/false) --- 高版本浏览器
说明:
第一个参数: 监听的事件 这里的事件没有on
第二个参数: 事件处理程序
第三个参数: 是一个布尔值 true表示 事件的捕获 false 表示事件的冒泡 (默认是false)
对象.attachEvent("事件",事件处理程序) ---- 低版本浏览器
说明:
第一个参数: 监听的事件 这里的事件有on
第二个参数: 事件处理程序
冒泡和捕获的执行顺序
当同一个元素既有事件冒泡和事件捕获时,先执行捕获 ; 后执行冒泡
事件委托
委托:让别人去做
事件委托:把某个事件委托给别人去做
委托的好处:
当某些元素具有同样的事件时,为了提高程序的执行效率,可以把这些元素的事件加到他们的父级元素上。
委托实现方式:
1、 父级元素.事件 = function(){ ... }
2、 通过事件监听方法 addEventListener 实现
父级元素.addEventListener("事件",function(){ .... })
委托实现时,获取事件源的属性: e.target || e.srcElement
委托实现原理: 利用事件冒泡的机制,将某些元素的事件添加到父级元素上
委托对事件的限制: 不是所有的事件都可以实现委托,例如下面的事件一般不需要委托 (onclick一般用委托实现的比较多)
onload onfocus onblur ....
注意的问题
button标签 在 form中相当于 submit按钮,会刷新页面
阻止超链接的跳转功能
json对象
json全称:javascript object notation
中文含义: javascript 对象表示法
定义:json是一种轻量级的数据交换对象
作用: 存储数据
json对象定义:
var j = { }
{} 里面数据的组成格式: 键值对 , 键和值之间用冒号,每一个键值对之间用 逗号 间隔, 所有的键必须用 双引号引起来。
键对应的值 可以是任意类型
例如:
var j = { "name": "小明" , "age":18 , "tel":"13999999999" }
json对象的操作:
赋值:
定义时直接赋值
动态为json对象赋值 j.addr = "beijing";
取值:
json对象.键名
json对象["键名"]
json对象的遍历 : for...in
欢迎大家持续关注。号内有多个专题,小程序(持续更新中),Javascript(持续更新),Vue(视频)等学习资源。觉得有收获的可以收藏关注,欢迎骚扰,一起学习,共同进步。
我的小程序,自律更自由,如果你也喜欢锻炼的话在这里寻找你的小伙伴吧。
一只喜欢锻炼的程序猿,嘿嘿。
你都看到这了,不点个关注就过分了哈~