DOM操作--添加事件处理程序
2015-12-16 09:43
357 查看
给DOM节点增加事件处理程序一般有以下3种方法
1:通过节点属性显式声明
如以下代码所示,直接在HTML中,显式地为按钮绑定了click事件,当该按钮有用户点击行为时,便会触发myClickFunc方法
<button id="hello" onclick="myFunc ()">点我试试</button>
myFunc 的定义在js中完成:
<pre name="code" class="javascript"> <script type="text/javascript">
var myFunc=function(evt){
console.log("hello ,feifei");
}</script>
这种事件处理程序的绑定,属于第一种的变形,将一个函数赋值给一个事件处理程序属性。
<button id="hello" >点我试试</button>
通过DOM操作进行绑定:
<script type="text/javascript">
var myFunc=function(evt){
console.log("hello ,feifei");
}
document.getElementById ('hello').onclick=myFunc ;
</script>
通过addEventListener,接受3个参数,要处理的事件名,作为事件处理程序的函数,一个布尔值。布尔值的参数如果为true, 表示在捕获阶段调用事件处理程序,如果为false,表示在冒泡阶段调用事件处理程序。
三种方法的优缺点
1、通过节点属性显式声明:存在时差问题,因为用户可能在HTML元素出现的时候就在页面触发相应的事件,但当时事件处理程序可能不具备执行条件;这样拓展事件处理的作用域链在不同的浏览器中会导致不同的结果;HTML与JavaScript代码紧密耦合,违背了HTML与JavaScript分离的原则。
2、通过节点属性动态绑定:一次只能添加一个事件处理程序
1:通过节点属性显式声明
如以下代码所示,直接在HTML中,显式地为按钮绑定了click事件,当该按钮有用户点击行为时,便会触发myClickFunc方法
<button id="hello" onclick="myFunc ()">点我试试</button>
myFunc 的定义在js中完成:
<pre name="code" class="javascript"> <script type="text/javascript">
var myFunc=function(evt){
console.log("hello ,feifei");
}</script>
2、通过节点属性动态绑定
这种事件处理程序的绑定,属于第一种的变形,将一个函数赋值给一个事件处理程序属性。<button id="hello" >点我试试</button>
通过DOM操作进行绑定:
<script type="text/javascript">
var myFunc=function(evt){
console.log("hello ,feifei");
}
document.getElementById ('hello').onclick=myFunc ;
</script>
3、通过事件监听的方式
通过addEventListener,接受3个参数,要处理的事件名,作为事件处理程序的函数,一个布尔值。布尔值的参数如果为true, 表示在捕获阶段调用事件处理程序,如果为false,表示在冒泡阶段调用事件处理程序。<button id="hello" >点我试试</button>
<script type="text/javascript"> var myFunc=function(evt){ console.log("hello ,feifei"); } document.getElementById ('hello').addEventListener ('click',myFunc); </script>
三种方法的优缺点
1、通过节点属性显式声明:存在时差问题,因为用户可能在HTML元素出现的时候就在页面触发相应的事件,但当时事件处理程序可能不具备执行条件;这样拓展事件处理的作用域链在不同的浏览器中会导致不同的结果;HTML与JavaScript代码紧密耦合,违背了HTML与JavaScript分离的原则。
2、通过节点属性动态绑定:一次只能添加一个事件处理程序
3、通过事件监听的方式:可以添加多个事件处理程序,是推荐用法
相关文章推荐
- Mootools 1.2教程(2) DOM选择器
- DOM 事件流详解
- jQuery中的常用事件总结
- Dom在ajax技术中的作用说明
- C#实现WinForm捕获最小化事件的方法
- c#事件使用示例详解
- C#中的事件介绍
- javascript针对DOM的应用分析(三)
- Dom 是什么的详细说明
- javascript针对DOM的应用分析(五)
- C#实现自定义双击事件
- javascript针对DOM的应用实例(一)
- extjs 为某个事件设置拦截器
- jQuery阻止同类型事件小结
- jQuery bind事件使用详解
- jQuery支持添加事件的日历特效代码分享(3种样式)
- 牛叉的Jquery――Jquery与DOM对象的互相转换及DOM的三种操作
- C#中委托和事件的区别实例解析
- SQLSERVER中得到执行计划的两种方式
- C#中事件的动态调用实现方法