js-DOM[1] 绑定~
来源:互联网 发布:apache源码包下载 编辑:程序博客网 时间:2024/06/06 11:44
第一个种绑定方法:
写到标签了: <a href="" onclick=""></a>
DOM 0 的标准(古老的标准)
好处“ 所有浏览器都支持 ”
第二个种绑定方法:
直接onload绑定 推荐
阻止:
绑定:
写到标签了: <a href="" onclick=""></a>
DOM 0 的标准(古老的标准)
好处“ 所有浏览器都支持 ”
坏处“ 1. 夹在html代码中,不简洁
2. 效率低3. 不符合提倡的 行为、结构、样式 分离了. ”
<a href="#" onclick="cl()">lianjie</a>
第二个种绑定方法:
直接onload绑定 推荐
好处“ 1. 代码简介,完成分离
2. 便于操作当事对象(因为function是作为对象的onxx属性出现的,因此如果函数里面操作该对象,直接用this就可以引用对象)
3. 可以方便的读取事件对象,以其第一个事件传递
4. ev 事件 ”
坏处“ 1.
window.onload=function(){alert('hello');}window.onload=function(){alert('world');}/* 第二个缺点:只会弹出 world */
”
window.onload=function(){document.getElementById('test').onclick=function(ev){alert('绑定');this.style.background = 'green';console.log(ev);}document.getElementsByTagName('html')[0].onclick=function(ev){/* */var test1 = document.getElementById('test1');test1.style.left = ev.clientX + 'px';test1.style.top = ev.clientY + 'px';}}
<style> #test{height: 50px;width: 50px;background: orange;}#test1{background: yellow;height: 50px;width: 50px;position: absolute;top: 100px;left: 100px;}</style></head><body><div id="test"> </div><div id="test1"> </div></body>
第三个种绑定方法:
addEventListener
W3c标准绑定
1. 绑定那个事件? click, load, change。。。。
2. 绑定什么函数---自定义
3. 什么方式监听?冒泡.捕捉
// 1. 事件名 一律不带on// 2. 绑定事件的函数中 this 指的绑定该事件的对象// 3. 执行顺序按照绑定顺序来搞的window.onload=function(){var test = document.getElementById('test');test.addEventListener('click',function(){alert('click');alert(this.style.width);},false);test.addEventListener('click',function(){alert('click,two');},false);}
W3C:
冒泡/捕捉:
<div id="t1">123<div id="t2"> 2<div id="t3">3</div></div></div><script> function $(id){return document.getElementById(id);} // 冒泡与捕捉$('t1').addEventListener('click',function(ev){alert('t1');ev.stopPropagation();},false);$('t2').addEventListener('click',function(ev){alert('t2');ev.stopPropagation();},false);$('t3').addEventListener('click',function(ev){alert('t3');ev.stopPropagation();},false);/*$('t1').addEventListener('click',function(){alert('t1');},false);$('t2').addEventListener('click',function(){alert('t2');},false);$('t3').addEventListener('click',function(){alert('t3');},false);*/</script>
阻止:
<form action="" id="fm"> <p><input type="text" name="x" id="x"></p><input type="submit" value="提交"></form><script>// 阻止 w3c标准$('fm').addEventListener('submit',function(ev){if($('x').value==''){alert();ev.preventDefault();}},false);</script>
绑定:
<div><p id="dj"> 点击 </p></div><div> <input type="submit" value="让你哭" onclick="addone()"><input type="submit" value="让你笑" onclick="addtwo()"><input type="submit" value="不准哭" onclick="remone()"><input type="submit" value="不准笑" onclick="remtwo()"></div><script> var atag = document.getElementsByTagName('a')[0];function xi(){alert('笑');}function ku(){alert('哭');}function addone(){$('dj').addEventListener('click',ku,false);}function addtwo(){$('dj').addEventListener('click',xi,false);}function remone(){$('dj').removeEventListener('click',xi,false);}function remtwo(){$('dj').removeEventListener('click',ku,false);}</script>
IE下的:
冒泡/捕捉:
阻止:
绑定:
window.onload=function(){var test1 = document.getElementById('test1')if(test1.attachEvent){document.getElementById('test1').attachEvent('onclick',function(){alert('冒泡');},false);document.getElementById('test1').attachEvent('onclick',function(){alert('捕捉');},true);}else{document.getElementById('test1').addEventListener('click',function(){alert('冒泡');},false);document.getElementById('test1').addEventListener('click',function(){alert('捕捉');},true);}/*ie:0. 绑定事件的函数不一样,IE中用的 attachEvent1. 要加on ,如click->onclick2. 不支持捕捉, 只支持冒泡3. 执行顺序不固定4. 绑定事件中,this的指向问题 w3c指向元素本身, ie指向window5. ie事件对象是window.event ,实测ie678已经支持ev了 */}<input type="button" id="test1" value="d">
0 0
- js-DOM[1] 绑定~
- js 动态dom绑定事件
- JS中dom绑定事件方法
- JS DOM 绑定的三种方法
- JS中的数据绑定和DOM回流
- JS实现对DOM元素事件的绑定
- 【JS 设计模式 】门面模式之DOM元素绑定事件
- 01 JS-DOM之--事件以及绑定方法
- vue.js 2.0 关于ref--绑定dom对象并获取
- 01 JS-DOM之--事件以及绑定方法
- js给dom元素绑定事件的三种方式
- Js DOM编程(1)
- JS垫脚石-DOM篇1
- 05-1 JS的DOM
- 新dom 事件绑定
- DOM—事件绑定
- AngularJS绑定DOM
- DOM事件绑定
- Sharepoint webpart 自定义属性
- linux内核分析--中断和中断处理程序
- 关于PHP Parse Error: syntax error, unexpected $end 错误的解决办法
- 同表Update:根据同表已有记录非Null字段值去匹配填充Null字段值
- 介绍一款最强大的跨平台的集成开发工具SlickEdit2013
- js-DOM[1] 绑定~
- web开发中特殊字符的对应值与转义字符
- 八皇后java实现
- ngrep-sip工具使用
- Struts2里如何取得request,session,application
- openwrt编译内核
- 编程之美格格取数(为什么一直是WA,求测试)
- Hibernate 自动生成bo 映射是 default_schema 引发的问题
- 启动LFS,检测大多是FAIL,启动失败,电脑自动关机,需要重新编译LFS