JS事件绑定的三种方式比较
js事件
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Document</title>
- <style>
- body{
- width:100%;
- height:100%;
- }
- input{
- display: block;
- margin-bottom:10px;
- }
- .active{
- color:orange;
- }
- </style>
- <script src="DomReady.js"></script>
- <script>
- myReady(function(){
- var btn = document.querySelector("#btn");
- //时间句柄
- var clickme = function(){
- alert("hello~");
- }
- btn.addEventListener("click", clickme);
- });
- </script>
- </head>
- <body>
- <button id="btn">点击我</button>
- </body>
- </html>
事件监听的三种方法:
1、直接在html上添加事件(不建议)
强耦合,不利用代码复用
2、DOM 0级
一个元素只能绑定一个事件的限制
如果绑定了多个事件,后面的会覆盖掉前面的
2、DOM 2级
一个事件可以绑定多个监听函数
还可以定义事件捕获和事件冒泡
btn.addEventListener("click", fn, false); 第三个参数默认是false
btn.attachEvent("onclick", fn); IE的事件监听函数attachEvent
document.body.addEventListener("load", init);
document.body.attachEvent("onload", init);
function init(){}
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Document</title>
- <style>
- body{
- width:100%;
- height:100%;
- }
- input{
- display: block;
- margin-bottom:10px;
- }
- .active{
- color:orange;
- }
- </style>
- <script src="DomReady.js"></script>
- <script>
- myReady(function(){
- // DOM 0级
- var btn3 = document.querySelector("#btn3");
- btn3.onclick=function(){
- alert("hello3~");
- }
- var btn4 = document.querySelector("#btn4");
- function click4(){
- alert("hello4~");
- }
- btn4.onclick=click4;
- // DOM 2级
- var btn5 = document.querySelector("#btn5");
- //事件句柄
- var click5 = function(){
- alert("hello5~");
- }
- //这里的clickme不需要加括号
- btn5.addEventListener("click", click5);
- });
- </script>
- </head>
- <body>
- <!-- 直接加在HTML上的两种方式 -->
- <button id="btn1" onclick="alert('hello1~')">按钮1</button>
- <!-- 这里的click1()需要加括号 -->
- <button id="btn2" onclick="click2()">按钮2</button><br>
- <!-- DOM 0级 -->
- <button id="btn3">按钮3</button>
- <button id="btn4">按钮4</button><br>
- <!-- DOM 2级 -->
- <button id="btn5">按钮5</button>
- <script>
- // 突然发现这个函数只能在btn的后面,而不能在前面
- // 即使用了domReady也不行哎
- function click2(){
- alert("hello2~");
- }
- </script>
- </body>
- </html>
JS事件绑定的三种方式比较的更多相关文章
- JS中事件绑定的三种方式
以下是搜集的在JS中事件绑定的三种方式. 1. HTML onclick attribute <button type="button" id="upl ...
- JavaScript 中事件绑定的三种方式
以下是在 JS 中事件绑定的三种方式. 1. HTML onclick attribute <button type="button" id="uplo ...
- JavaScript事件绑定的三种方式
(一)事件绑定的三种方式 (1)通过on的形式 <script type="text/javascript"> var div = document.getElemen ...
- js事件绑定的几种方式与on()、bind()的区别
版权声明:本文为博主原创文章,未经博主允许不得转载 一直不是很理解几种js事件绑定之间的区别与联系,今天百度了一下,在此做一总结: 1.如果只是简单的绑定一个事件,可以直接写在行内,点击执行一个函数, ...
- JavaScript中事件绑定的三种方式
JavaScript使得网页与用户友好交互,在使用 js 进行时间绑定的时候有三种绑定方式. 第一种:初学者以及普通写法 <div id="dom0"> <inp ...
- js事件绑定的几种方式
在JavaScript中,有三种常用的绑定事件的方法: 在DOM元素中直接绑定: 在JavaScript代码中绑定: 绑定事件监听函数 一. 在DOM元素中直接绑定 这里的DOM元素,可以理解为HTM ...
- JS 事件绑定的几种方式 小笔记
第一种 var test=document.getElementById('add'); add.onclick=function(){ alert('1'); } 直接在对象上注册事件 缺点:如果我 ...
- js中的事件绑定的三种方式
1 直接在html标签中绑定 <button onclick = "show()"></button> 注意当你引用的js代码是包裹在window.onlo ...
- js声明变量的三种方式
JS 声明变量的三种方式 (1)使用变量步骤:a.声明-->b.赋值-->3.调用 正确用法: <script type="text/javascript"> ...
随机推荐
- ASP.Net Core 发布到IIS Http Error 502.5 官方解决办法
Http Error 502.5 - Process Failure 在IIS上发布.NET Core程序出现这个错误.网上搜索到的办法为什么总行不通呢? 有可能年代久远,现在的环境与当年不同,所以解 ...
- Day8-Python3基础-Socket网络编程
目录: 1.Socket语法及相关 2.SocketServer实现多并发 Socket语法及相关 socket概念 socket本质上就是在2台网络互通的电脑之间,架设一个通道,两台电脑通过这个通道 ...
- Docker三剑客之compose
简介 Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排.从功能上看,跟 OpenStack 中的 Heat 十分类似.其代码目前在 https://g ...
- 使用自定义注解和springAOP捕获Service层异常,并处理自定义异常
一 自定义异常 /** * 自定义参数为null异常 */ public class NoParamsException extends Exception { //用详细信息指定一个异常 publi ...
- Java虚拟机系列一:一文搞懂 JVM 架构和运行时数据区
前言 之前写博客一直比较随性,主题也很随意,就是想到什么写什么,对什么感兴趣就写什么.虽然写起来无拘无束,自在随意,但也带来了一些问题,每次写完一篇后就要去纠结下一篇到底写什么,看来选择太多也不是好事 ...
- 三、Django学习之单表查询接口
查询接口 all() 查询所有结果,结果是queryset类型 filter(**kwargs) and条件关系:参数用逗号分割表示and关系 models.Student.objects.filte ...
- sougn开源,自己写的一个项目
源代码:http://yun.baidu.com/share/link?shareid=1504480803&uk=2739888323 联系方式:1034465036@qq.com
- Huffman编码和解码
一.Huffman树 定义: 给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径达到最小,这样的二叉树称为最优二叉树,也称为霍夫曼树(Huffman树). 特点: Huffman树 ...
- POJ_1050_最大子矩阵
http://poj.org/problem?id=1050 这道题是最大子串的扩展,遍历过每一个子矩阵就好了,期间用了最大子串的方法. #include<iostream> #inclu ...
- ionic中的http,jsonp的使用
要导入 import { HttpModule,JsonpModule } from '@angular/http'; 到app.module.ts http,jsonp的区别 第一:在U ...