js 中事件的个人理解

事件

事件组成

1,触发谁的事件    事件源2,触发是什么事件    click  mouseover mouseout3,事件触发之后,干什么    事件函数  (干什么写在事件函数中)

事件对象

类似于飞机的“黑匣子” 用于保存 一个事件发生的时候,所有的信息比如:事件发生时鼠标的坐标如何获取事件对象:    兼容性问题:在不同浏览器上 获取方法不一样    在IE 以及DOM标准:全局的对象(window下)  名字event    在高版本IE 以及 chrome 不支持event来获取事件对象的,另外一种方式        自动变成事件函数的第一个参数(这个参数就是事件对象)兼容性写法:?    btn.onclick=function(ev){        var e = ev || event;    }

注意:    只有事件发生的时候,写在事件函数中,event保存的就是当前事件的所有的信息

事件对象上有用的信息

坐标相关

clientX clientY 事件发生时,光标 距离可视区的坐标

offsetX offsetY 事件发生时 ,光标 距离元素的坐标

pageX pageY 事件发生时,光标距离 页面的距离(和滚动条无关)

判断鼠标按键(左键、右键) 了解

button

判断 点击的 鼠标(左键、右键)

左键:0 右键:2

            var box = document.getElementById("box");            box.onclick = function(ev){                var e = ev||event;                console.log(e.button);

            }            box.oncontextmenu = function(ev){                var e = ev||event;                console.log(e.button);                return false;            }

阻止默认事件:在事件函数中 return false

浏览器事件

  • load : 页面全部资源加载完毕
  • scroll : 浏览器滚动的时候触发
  • ...

鼠标事件

  • click :点击事件
  • dblclick :双击事件
  • contextmenu : 右键单击事件 内容菜单事件
  • mousedown :鼠标左键按下事件
  • mouseup :鼠标左键抬起事件
  • mousemove :鼠标移动
  • mouseover :鼠标移入事件
  • mouseout :鼠标移出事件
  • mouseenter :鼠标移入事件
  • mouseleave :鼠标移出事件
  • ...

键盘事件

  • keyup : 键盘抬起事件
  • keydown : 键盘按下事件
  • keypress : 键盘按下再抬起事件(时间稍长)
  • ...

表单事件

  • change : 表单内容改变事件
  • input : 表单内容输入事件
  • submit : 表单提交事件
  • ...

触摸事件 移动端()

  • touchstart : 触摸开始事件
  • touchend : 触摸结束事件
  • touchmove : 触摸移动事件
  • ...

keyCode返回的是当前按键的unidecode编码

回车  13左  37上 38右  39下 40

组合按键 了解

如果一段代码块需要按下多个按钮触发

事件对象 提供了三个属性altKeyctrlKeyshiftKey当我们按下了alt键 altKey的值 是true否则是false

另外一种绑定事件的方式

dom0标准

js中:    元素.on事件名 = 函数

    元素.onclick = function(){//code}

    function fn(){//code}    元素.onclick = fn;?缺点:    1,一个元素,相同的事件只能绑定一个事件函数    2,顺序无法改变 永远是从内向外触发

dom2标准

事件监听?dom标准:?•   元素.addEventListener("事件名",fn[,true/fase]);?优点:?•   可以绑定多个事件?•   可以改变事件触发顺序

兼容性:

IE下事件监听 ?语法:?•   元素.attachEvent("on事件名",fn);注意:不能改变顺序

DOM操作

创建一个dom对象document.createElement("标签名");插入:    内部        父元素.appendChild(插入的元素)        作为父元素的最后一个子元素插入的    外部        父元素.insertBefore(新的元素,在谁之前);删除    父元素.removeChild(删除的元素)替换一个元素    父元素.replaceChild(新的元素,被替换的元素);

文档碎片:    var arr= [1,2,3,4,5,56];            var list = document.getElementById("list");            var container = document.createDocumentFragment();            for(var i=0;i<arr.length;i++){                var oli = document.createElement(‘li‘);                oli.innerHTML = arr[i];                container.appendChild(oli);            }            list.appendChild(container)    作用:提高代码运行效率,减少页面的重新渲染    页面什么时候回重新渲染:    扩展(高工资  dom重构和回流)        当我们改变了元素的布局相关样式        (宽高、位置、元素显示消失)

原文地址:https://www.cnblogs.com/cxf1214/p/11421133.html

时间: 2024-10-13 13:37:14

js 中事件的个人理解的相关文章

js中事件流的理解

事件的概念: HTML中与javascript交互是通过事件驱动来实现的,例如鼠标点击事件.页面的滚动事件onscroll等等,可以向文档或者文档中的元素添加事件侦听器来预订事件. 想要知道这些事件是在什么时候进行调用的,就需要了解一下“事件流”的概念. 什么是事件流: 1,DOM事件流, 事件流包括三个阶段: 1,事件捕获阶段. 2,处于目标阶段.(当前事件阶段) 3,事件冒泡阶段. <!DOCTYPE html> <html lang="en"> <h

笔记-[6]-js中事件绑定方法的总结

js中的两种对象事件绑定方法: 1:常用的如:div.onclick=function(){...}; 2:通过系统方法绑定事件: 非IE:addEventListener('事件名[不加on]',function(){},false[或者true]) IE:attachEvent('事件名[加on]',function(){}); 通过系统方法绑定事件可以让对象可以绑定相同的事件并且执行不同的操作,如果使用第一种方法绑定多个相同的事件,最后一个事件会覆盖前面所有的事件. 在addEventLi

JS中事件绑定的三种方式

以下是搜集的在JS中事件绑定的三种方式. 1. HTML onclick attribute <button type="button" id="upload" onclick="upload_file();"> 原文: http://www.w3school.com.cn/jsref/jsref_events.asp 2. jQuery .on() $(node).on("change", function(e)

关于js中this指向的理解总结!

关于js中this指向的理解! this是什么?定义:this是包含它的函数作为方法被调用时所属的对象. 首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象(虽然在很多情况下那样去理解不会出什么问题,但是实际上那样理解有些准确的),那么接下来我会深入的探讨这个问题. 例子1: function a(){ var user = " 小明"; console.log(this.user);

js中事件(自定义事件)

今天闲的蛋疼,我们来聊一聊web前端中的事件机制和自定义事件.灵感来自jQuery,在此感谢jQuery作者. 首先,最开始. <button id="button" type="button" onclick="alert('hello')">你好</button> 这是我们在使用html写页面的时候最原生的事件触发方式.上面那行代码会生成一个按钮,当我们点击这个按钮的时候就会弹出一个原生的弹窗,内容是hello. 随着

JS中事件的执行顺序和AJAX的异步

之前了解过异步和同步,知道同步是顺序执行,异步是同时执行,但是没有遇到过这种情况,不是很理解,这两天做项目突然遇到了,对这有了一个初步的认识.废话不多说,直接上要求. 1.项目要求:外部调用xml文件,然后JS动态生成下拉菜单,使多个文件同时使用此菜单,方便维护. 如图,下面白色为以前的菜单,但是多个地图都需要写同样的菜单比较麻烦,也不好修改,所以做一个xml文件,存储菜单内容,然后多个地图调用,容易修改,蓝色部分菜单. 2.项目代码:此处我使用的Jquery addMenu(){ $.ajax

JS中对于prototype的理解

JS中的prototype是JS中比较难理解的一个部分 本文基于下面几个知识点: 1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行扩展.我们称B的原型为A. 2 javascript的方法可以分为三类: a -> 类方法 b -> 对象方法 c -> 原型方法 例子: function People(name){ //对象属性 this.name=name; //对象方法 this

JS中原型链的理解

在谈原型链之前,我们首先要了解自定义函数与 Function 之间是什么关系,而构造函数.原型和实例之间又存在什么千丝万缕的关系呢?其实,所有的函数都是 Function 的实例.在构造函数上都有一个原型属性 prototype,该属性也是一个对象:那么在原型对象上有一个 constructor 属性,该属性指向的就是构造函数:而实例对象上有一个 _proto_  属性,该属性也指向原型对象,并且该属性不是标准属性,不可以用在编程中,该属性用于浏览器内部使用. 1 // _proto_ 2 在函

JS中事件以及语句运行顺序的问题

先来看看问题: 问题:1.为何onfoucs事件在这段代码中是最后才执行的?2.这里有涉及到异步?不然的话为何onfocus事件还没执行,就继续解析下一段代码了?代码如图: 我在chrome,FF浏览器的运行结果得到的顺序都是:1.console.log(document.readyState)2.alert()语句3.最后才是onfocus方法 运行结果:1.一定是先出现loading的,否则alert会阻塞进程. 2.当我按下确定,则出现了下一段的test 这里面涉及到JS中的事件运行机制问