事件的三种绑定方式

1.行内式绑定事件处理


<input  type="button" value="click" style="color:red" onclick="console.log(this.style.color)"/>

另外一种写法:

<input  type="button" value="click" style="color:red" onclick="clickMe()"/>

function clickMe(){

//event 这是默认存在的事件对象

}

这时候,这个函数的作用于这就这个对象本身(input),所以我们可以通过this获取input的任何属性。

缺点:

1.html与js代码的耦合性高

2.在事件函数未预编译之前,点击可能会报错

3.这样的事件处理程序在不同浏览器中的作用于链有差别

2.dom0级式定义事件处理程序



优点:

1.使用简单,粗暴

2.跨浏览器

缺点:

1.每个元素只能定义一个click事件,因为是属性式的,后面的定义会覆盖前面的定义

var btn = document.getElementById("mybtn");

btn.onclick = function(){

  alert(this.id)

}

仔细查看btn对象的话,会发现里面很多事件属性,onclick,onmouseover...

所以这种又被称为元素的方法,这里的作用域值得是元素btn。

事件触发阶段:冒泡阶段

3.dom3级式定义事件处理程序



这里用的就是我们常用的addEvenListener(),removeEvenListener()

优点:

1.可定义多个事件,并依次执行。

一般都是将事件添加到事件流的冒泡阶段,以便兼容更多浏览器。

dom0定义的事件会在其所属的作用域中运行,dom0中的this指向当前对象。

dom2定义的事件会在全局作用域(window)中运行,this==window。

转发自:http://www.cnblogs.com/zqzjs/

时间: 2024-12-17 11:15:21

事件的三种绑定方式的相关文章

监听事件的三种实现方式

1.在activity_main.xml文件中添加三个Button按钮 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="ma

v-bind绑定属性样式——class的三种绑定方式

1.布尔值的绑定方式 <div id="demo"> <span v-bind:class="{'class-a':isA ,'class-b':isB}"></span> </div> var vm = new Vue({ el:"#demo", data:{ isA: true, isB: true } }) 2.变量的绑定方式 <div id="demo"> &

监听按钮的点击事件的三种实现方式

1.匿名内部类监听按钮点击事件 Button buttonup=(Button)findViewById(R.id.btn_signup); //找到需要的Button按钮,转换成Button类型 buttonin.setOnClickListener(new View.OnClickListener() { //设置Button的监听器 @Override public void onClick(View v) { Toast.makeText(MainActivity.this,"点击了登录

JS的三种使用方式/CSS的三种使用方式/JS中的DOM事件模型/JS中匿名函数的书写及调用/媒体查询@media的三种使用方式

一.JS的三种使用方式 1.html标签中内嵌JS(不提倡使用.)                <button onclick="javascript:alert('你真点啊.')" > 有本事点我呀!!!!</button>                                2.HTML页面中直接使用JS:                <script type="text/javascript">        

监听按钮点击事件的三种方式实现及调试信息输出的三种方式实现

监听按钮点击事件的三种方式实现: 1.匿名内部类 2.外部独立类 3.接口实现 package com.example.button; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View;

Binding 中 Elementname,Source,RelativeSource 三种绑定的方式

在WPF应用的开发过程中Binding是一个非常重要的部分. 在实际开发过程中Binding的不同种写法达到的效果相同但事实是存在很大区别的. 这里将实际中碰到过的问题做下汇总记录和理解. 1. source = {binding} 和source = {binding RelativeSource={RelativeSource self},Path=DataContext}效果相同 理解:{binding} 不设定明确的绑定的source,这样binding就去从本控件类为开始根据可视树的层

javascript中定义事件的三种方式

在javascript中,可以为某个元素指定事件,指定的方式有以下三种: 1.在html中,使用onclick属性 2.在javascript中,使用onclick属性 3.在javascipt中,使用addEvenListener()方法 三种方法的比较 (1)在第二.三种方法中,可以向函数传入一个event对象,并读取其相应属性,而方法一不可以. (2)首选第二.三种,第一种不利于将内容与事件分离,也不能使用event对象的相关内容. 一些语法细节 (1)在第一种方法中,onclick大小写

canvas入门-1三种填充方式、渐变、模式

1.定义canvas的尺寸的时候最好用html的方式定义,用width和height的方式,用css会导致画布按照css设定的方式进行缩放,cavas内部是一个2d的渲染环境 2.一个canvas对应一个2d的渲染环境,绘制图形的操作都是在2d渲染环境中进行的 <canvas id="canvas-1" style="border:solid 1px gray;" width = "400" height="400"&g

Javascript事件模型系列(一)事件及事件的三种模型

转载: http://www.cnblogs.com/lvdabao/p/3265870.html 一.开篇 在学习javascript之初,就在网上看过不少介绍javascript事件的文章,毕竟是js基础中的基础,文章零零散散有不少,但遗憾的是没有看到比较全面的系列文章.犹记得去年这个时候,参加百度的实习生面试,被问到事件模型,当时被问的一头雾水,平时敲onclick敲的挺爽,却没有关注到事件模型的整体概念.这个周末难得清闲,决定就javascript中的事件模型写个系列,算是对知识点的一个