DOM模型和事件处理---事件处理

常用的事件方式
常规的事件处理方法无法批量的为节点添加事件,所以一般都是通过如下方式进行事件操作

<input type="button" value=‘click‘ id=‘btn‘/>

//另外一种创建事件的方式,基本上都是使用这种方法

var btn = document.getElementById(‘btn‘);
btn.onclick = function(event){
    //会自动传入一个event的事件参数对象
    console.log(event.type);
    console.log(this.value);
}
//script 目前必须在input之后,否则无法找到节点
//btn.onclick  当btn这个按钮被点执行相应的操作

使用这钟方式可能带来的问题如下所示
/*
    些时会报错,btn is null
    因为js 是解释执行的,执行到这个位置时并没有html中的标签存在
    所以id为btn的节点也就不存在了!
*/

event参数和window.wvent

对于以上事件的处理方式而言,会默认传递一个event的参数来获取一些事件信息,但是对于ie和firefox的获取
方式不一致,ie使用window.event,firefox使用event获取,所拟需要使用如下方法解决

function show(event){
    //特别注意:对于IE而言,不会自动传递event这个参数进去,IE需要通过window.event来获取事件
    //但是FF却不支持window.event,所以通常使用如下方式解决
    event = event || window.event;
    console.log(event.type);
    console.log(this.innerHTML);
}

window.onload事件
以上问题解决方案有两种
在body中加入onload =X 来解决

function loadSuccess(){
    /*
    些时会报错,btn is null
    因为js 是解释执行的,执行到这个位置时并没有html中的标签存在
    所以id为btn的节点也就不存在了!
    解决方案有两种
    1、直接在body中有一个事件,叫做onload,目前这些代码在loadSuccess方法中
    此时,就表示要把所有的元素都load成功之后才执行
    2、使用window.load = x来设置执行的事件(建议使用的方法)
    */
    var btn = document.getElementById(‘btn‘);
    btn.onclick = function(event){
        //会自动传入一个event的事件参数对象
        console.log(event.type);
        console.log(this.value);
    }
}

<body onload=‘loadSuccess()‘></body>

使用window.onload事件解决
//当窗口加载完成之后执行loadSuccess,注意loadSuccess不加括号
window.onload = loadSuccess;

批量添加事件

window.onload = ready;
function ready(){
    var lis = document.getElementsByTagName(‘li‘);
    for(var i=0;i<lis.length;i++){
        lis[i].onclick = show;
    }
}

function show(event){
    //特别注意:对于IE而言,不会自动传递event这个参数进去,IE需要通过window.event来获取事件
    //但是FF却不支持window.event,所以通常使用如下方式解决
    event = event || window.event;
    console.log(event.type);
    console.log(this.innerHTML);
}
时间: 2024-10-11 02:11:28

DOM模型和事件处理---事件处理的相关文章

整理之DOM事件阶段、冒泡与捕获、事件委托、ie事件和dom模型事件、鼠标事件

整理之DOM事件阶段 本文主要解决的问题: 事件流 DOM事件流的三个阶段 先理解流的概念 在现今的JavaScript中随处可见.比如说React中的单向数据流,Node中的流,又或是今天本文所讲的DOM事件流.都是流的一种生动体现.用术语说流是对输入输出设备的抽象.以程序的角度说,流是具有方向的数据. 事件流分事件冒泡与事件捕获 在浏览器发展的过程中,开发团队遇到了一个问题.那就是页面中的哪一部分拥有特定的事件? 可以想象画在一张纸上的一组同心圆,如果你把手指放在圆心上,那么你的手指指向的其

DOM模型有三种

<!-- DOM模型有三种: DOM level 1:将HTML文档封装成对象. DOM level 2:在level 1基础加入新功能,比如解析名称空间.//<html xmlns="http://www.sina.com.cn"> DOM level 3:将XML文档封装成对象. --> DOM模型有三种,布布扣,bubuko.com

DOM模型

DOM模型其实将一个HTML和一颗树之间进行映射. DOM中有以下节点: 元素节点:<html>.<body>.<meta>和<h1>等都是元素节点. 文本节点:文本节点是向用户展示的类容,在XHTML中文本节点总是被包含在元素节点的内部,但是元素节点并不一定包含文本节点,比如说<ul>. 属性节点:属性总是被放在标签中,因此属性节点总是被包含在元素节点中. 使用DOM 知道了DOM模型的框架和节点之后,最重要的就是利用这些节点来处理(操作)HT

DOM模型--简单的颜色块显示

这是一个简单的DOm模型的应用: 效果图: a:原始状态: b:点击红色区域之后 c:点击下拉框之后的字体颜色变化 具体的介绍: 这个就是点击上方的颜色块,能够使字体出现不同的颜色 1,首先采用div对象,属性里面含有onclick对象 然后设置:var col=node.style.backgroundColor; document.getElementById("divid").style.color=col; 2,在select中触发的时间必须有事件  onchange=&quo

JavaScript---网络编程(5)-自定义对象Json、Dom模型概念讲解

这节博客主要讲解Dom模型概念~和JSON的简单介绍 首先,还是先上out.js的代码: function println(param){ document.write(param+"<br/>"); } function print(param){ document.write(param); } 什么是 DOM? DOM 是 W3C(万维网联盟)的标准. DOM 定义了访问 HTML 和 XML 文档的标准: "W3C 文档对象模型 (DOM) 是中立于平台和

JS(四)DOM模型之属性样式

一.DOM模型 1.简介 DOM模型:文档对象模型,Document Object Model. DOM何时创建:当网页被加载的时候,浏览器就会创建页面的文档对象模型. 2.作用 通过DOM模型,用户可以修改HTML元素属性和样式,增减HTML元素,响应HTML元素的事件. 二.常用JS DOM功能 1.输出流:document.write(),动态创建页面输出内容. 2.改变标签内容:document.getElementById("id").innerHTML="&quo

JavaScript---网络编程(7)-Dom模型(节点间的层次关系,节点的增、删、改)

利用节点间的层次关系获取节点: 上一节讲了3中获取的方式: * ※※一.绝对获取,获取元素的3种方式:-Element * 1.getElementById(): 通过标签中的id属性值获来取该标签对象 * 2.getElementsByName(): 通过标签中的name属性值来获取该标签对象集合 * 3.getElementsByTagName(): 通过标签名来获取该标签对象集合 现在来看看相对获取的方式: ※※二.相对获取(利用节点之间的层次关系),获取节点:-Node 1.父节点:pa

js之正则、表单验证、dom模型

正则:规则 语法 var a=/表达式/ 输入的值要包含表达式 var a1 = new RegExp('表达式') 检索 ---表达式.test(输入的值) 返还boolean类型 正则符号 (对于多个符号进行正则,用()) ^ ---输入的值以符号后的字符为第一位 $ ---以符号前的字符为结尾 +---- 符号前的字符可以出现多个 *--- 符号前的字符可以出现任意次数 ?--- 符号前字符可以出现0次 或者1次 {n}---符号前字符必须可以出现n次 ,但是要加开始,结尾 {n,}---

DOM模型 Document方法

13DOM模型 web资料里有关于它的结构图形Document Object Model就是将文档中的各种东西转化为对象来管理一种树状结构 有层级关系 我们可以使用它访问所有的HTML标签标签的对象化就是给标签id name 等等 14 Document的方法:(可以看api文档)GetElementById(); 之前用很多回了 就是找到第一个拥有指定id的对象var object=GetElementById(); alter(object.id); 就可以显示出对应标签的id了object