事件

作者: 楼水流云 | 来源:发表于2019-10-07 21:00 被阅读0次

dom2事件-捕获阶段(window->html->body->button)-到达阶段(刚好到button上)-冒泡阶段(button->body-html->window) this 代表目标现在元素

事件绑定
addEventListener('click',function(){console.log(this)},true||false) 可以写多次不会重复 true捕获阶段调用 false冒泡阶段处理 默认false 添加事件监听器 相当于执行函数
removeEventListener('click',hander,false) 移除事件类型

ie
attachEvent('button''onclick',function(e){console.log(this)}) 绑定事件 只能发生在冒泡阶段 这里的this代表window
detachEvent('button','onclick',handler) 解除绑定

事件兼容写法
button.addEventListener('click',function(){console.log(this.innerText)}) 获取我点击的目标html或者其他
button.addEventListener('click',function(e){console.log(e.target)}) 事件真实的触发元素是什么

事件对象上的属性和方法
button.addEventListener('click',function(){e.stopPropagation()}) 取消事件冒泡 停止传播
link.addEventListener('click',function(){e.preventDefault()}) 阻止默认事件 如forem表单的验证 a链接的跳转
getEvent
get.Target

ie低版本
attachEvent(on + click,事件处理程序)没有true和false 会在全局变量内运行 this 代表window 多个事件方法的时候是没有规律的
detachEvent 解除绑定

常见事件类型
click 单击
dbclick 双击

mouseenter 鼠标放置碰到元素的时候 成对出现 对子元素不生效 推荐
mouseleave 鼠标离开元素的时候 成对出现 对子元素不生效 推荐

mouseover 鼠标放置碰到元素的时候 成对出现
mouseout 鼠标离开元素的时候 成对出现

focus 获取焦点的时候 input
blur 失去焦点的时候 input

keyup 键盘松开的时候 input
change 内容发生改变的时候 input 是一个blur 然后判断内容是不是发生了变化
submit 当form表单提交的时候 比如注册验证
scroll 当窗口滚动的时候
load 加载的时候 如图片加载
error 出现错误时
keypress 回车

this.classList.add("class") 自己添加一个class 推荐
this.classList.remove("class") 自己删除一个class
[].indexof.call(tabs,this)

事件封装 全版本通用
function(node,type,handler) {

}

var node = document.getElementsByclassName(".box")[0]

node['eclickfunction(){xxx}'] = function(e){
console.log(e)
console.log(this)
}

node["clickfunction(){xxx}"] = function(){
node"eclickFunction(){xxx}"
}

node.attachEvent("on" = click,node["click" + handler])

事件代理-事件冒泡的使用
使用场景:页面上一些新增元素需要绑定事件

实现一个点击和添加 todolist
var liNodes = document.querySelectorAll(".container")
var showNode = document.querySelector("#show")
var addNode = document.querySelector("#btn")
var addIpt = document.querySelector("#add-ipt")
var container = document.querySelector(".container ul")

container.addEventListener("click",function (e) {
var target = e.target
if (target.tagName.toLowerCase() === "li") {
showNode.innerText = target.innerText
}
})
addNode.addEventListener("click",function () {
var node = document.createElement("li")
node.innerText = addIpt.value
container.appendChild(node)
})

相关文章

  • JavaScript事件01——事件流

    大纲:概念(事件、事件流)事件流模型(事件冒泡、事件捕获、DOM事件流) 一、概念: 1、事件:事件就是用户或浏览...

  • 事件对象,事件监听,事件冒泡,事件代理

    一、事件对象 二、冒泡事件:(事件从子元素往父级元素向上触发事件)处理兼容问题:主流浏览器:e.stopPropa...

  • 事件总结

    DOM事件主要内容 事件流 事件注册 事件对象 事件分类 事件代理 什么是DOM事件? 事件是某个行为或者触发,比...

  • Javascript事件系统

    本文内容 事件基础 事件监听方式 事件默认行为 事件冒泡与事件捕获 事件绑定与事件委托 事件基础 注意:本文不会深...

  • Javascript事件-事件冒泡,事件捕获,事件监听和事件委托

    事件处理机制 (一)DOM事件流 DOM模型是一个树形结构,在DOM模型中,HTML元素是有层次的。当一个HTML...

  • 【事件】事件流

    1、JavaScript和HTML之间的交互通过事件实现的。2、事件流描述的是从页面中接收事件的顺序。3、IE 和...

  • 【事件】事件对象

    触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含着所有与事件有关的额信息。(包括导致事件的元...

  • 【事件】事件类型

    DOM3 级事件规定了以下几类事件: UI(User Interface,用户界面)事件,当用户与页面上的元素交互...

  • 2018-09-10JQuery高级应用

    JQuery事件 window事件 鼠标事件 键盘事件 表单事件 事件注册语法$(对象).type(fn)type...

  • JS事件

    ?事件的相关术语 事件类型: 鼠标事件、键盘事件事件名称: click、dbclick等事件目标: 表示与发生事件...

网友评论

      本文标题:事件

      本文链接:https://www.haomeiwen.com/subject/gvqcpctx.html