javascript中为某个元素指定事件的三种方式


Posted in Javascript onAugust 07, 2014

在javascript中,可以为某个元素指定事件,指定的方式有以下三种:
1、在html中,使用onclick属性
2、在javascript中,使用onclick属性
3、在javascipt中,使用addEvenListener()方法

三种方法的比较
(1)在第二、三种方法中,可以向函数传入一个event对象,并读取其相应属性,而方法一不可以。
(2)首选第二、三种,第一种不利于将内容与事件分离,也不能使用event对象的相关内容。

一些语法细节
(1)在第一种方法中,onclick大小写无关,但在第二种方法中,必须使用小写。因为HMTL对大小写不敏感,而JS则会区分大小写。
(2)在第二、三种方法中,指定函数名时没有双引号,而第一种作为一个HTML属性,需要双引号。
(3)第一种方法需要括号,第二、三种不需要。

onclick="clickHandler()"
document.getElementById("jsOnClick").onclick = clickHandler2; 
document.getElementById("addEventListener").addEventListener("click", clickHandler2);

完整代码如下:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Even Deom</title> 

</head> 
<body> 
<button id="htmlOnClick" onclick="clickHandler()">htmlOnClick</button> 
<button id="jsOnClick">jsOnClick</button> 
<button id="addEventListener">addEventListener</button> 

<script defer> 
function clickHandler() { 
alert("onclick attribute in html"); 
} 
function clickHandler2(e) { 
alert(e.target.innerHTML); 
} 
document.getElementById("jsOnClick").onclick = clickHandler2; 
document.getElementById("addEventListener").addEventListener("click", 
clickHandler2); 
</script> 
</body> 
</html>

在javascript中,可以为某个元素指定事件,指定的方式有以下三种:
1、在html中,使用onclick属性

2、在javascript中,使用onclick属性
(1)注意函数名没有双引号。

3、在javascipt中,使用addEvenListener()方法

三种方法的比较
(1)在第二、三种方法中,可以向函数传入一个event对象,并读取其相应属性,而方法一不可以。

一些语法细节
(1)在第一种方法中,onclick大小写无关,但在第二种方法中,必须使用小写。因为HMTL对大小写不敏感,而JS则会区分大小写。
(2)在第二、三种方法中,指定函数名时没有双引号,而第一种作为一个HTML属性,需要双引号。
(3)第一种方法需要括号,第二、三种不需要。

onclick="clickHandler()"
document.getElementById("jsOnClick").onclick = clickHandler2; 
document.getElementById("addEventListener").addEventListener("click", clickHandler2);

完整代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Even Deom</title>

</head>
<body>
<button id="htmlOnClick" onclick="clickHandler()">htmlOnClick</button>
<button id="jsOnClick">jsOnClick</button>
<button id="addEventListener">addEventListener</button>

<script defer>
function clickHandler() {
alert("onclick attribute in html");
}
function clickHandler2(e) {
alert(e.target.innerHTML);
}
document.getElementById("jsOnClick").onclick = clickHandler2;
document.getElementById("addEventListener").addEventListener("click",
clickHandler2);
</script>
</body>
</html>
Javascript 相关文章推荐
JavaScript高级程序设计 扩展--关于动态原型
Nov 09 Javascript
jQuery 1.5最新版本的改进细节分析
Jan 19 Javascript
简介JavaScript中POSITIVE_INFINITY值的使用
Jun 05 Javascript
JavaScript中反正弦函数Math.asin()的使用简介
Jun 14 Javascript
JavaScript自学笔记(必看篇)
Jun 23 Javascript
jQuery扩展实现text提示还能输入多少字节的方法
Nov 28 Javascript
基于JS递归函数细化认识及实用实例(推荐)
Aug 07 Javascript
小程序获取周围IBeacon设备的方法
Oct 31 Javascript
微信小程序实现签到功能
Oct 31 Javascript
vue响应式更新机制及不使用框架实现简单的数据双向绑定问题
Jun 27 Javascript
微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)
Jul 25 Javascript
jQuery+ThinkPHP实现图片上传
Jul 23 jQuery
谷歌地图打不开的解决办法
Aug 07 #Javascript
JavaScript验证18位身份证号码最后一位正确性的实现代码
Aug 07 #Javascript
jquery bind(click)传参让列表中每行绑定一个事件
Aug 06 #Javascript
jQuery html()方法使用不了无法显示内容的问题
Aug 06 #Javascript
JQuery设置获取下拉菜单某个选项的值(比较全)
Aug 05 #Javascript
js触发select onchange事件的小技巧
Aug 05 #Javascript
jquery中each遍历对象和数组示例
Aug 05 #Javascript
You might like
PHP树-不需要递归的实现方法
2016/06/21 PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
2020/02/07 PHP
JavaScript类和继承 constructor属性
2010/03/04 Javascript
JavaScript 面向对象的 私有成员和公开成员
2010/05/13 Javascript
Jquery原生态实现表格header头随滚动条滚动而滚动
2014/03/18 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
2015/03/30 Javascript
JavaScript 事件入门知识
2015/04/13 Javascript
怎么通过onclick事件获取js函数返回值(代码少)
2015/07/28 Javascript
JavaScript运动减速效果实例分析
2015/08/04 Javascript
angular forEach方法遍历源码解读
2017/01/25 Javascript
JavaScript之DOM插入更新删除_动力节点Java学院整理
2017/07/03 Javascript
js实现简单选项卡功能
2020/03/23 Javascript
Vue核心概念Action的总结
2019/01/18 Javascript
优化Vue项目编译文件大小的方法步骤
2019/05/27 Javascript
vue路由缓存的几种实现方式小结
2020/02/02 Javascript
Vue强制组件重新渲染的方法讨论
2020/02/03 Javascript
vue 动态创建组件的两种方法
2020/12/31 Vue.js
详解Python字符串对象的实现
2015/12/24 Python
python实时分析日志的一个小脚本分享
2017/05/07 Python
python实现word 2007文档转换为pdf文件
2018/03/15 Python
Python实现队列的方法示例小结【数组,链表】
2020/02/22 Python
最新2019Pycharm安装教程 亲测
2020/02/28 Python
Python新手学习raise用法
2020/06/03 Python
美国滑雪板和装备购物网站:Skis.com
2018/12/20 全球购物
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
几个Linux面试题笔试题
2012/12/01 面试题
求职者简历中的自我评价
2013/10/20 职场文书
交通法规咨询中心工作职责
2013/11/27 职场文书
三八活动策划方案
2014/08/17 职场文书
软件研发工程师岗位职责
2014/09/30 职场文书
临时用工协议书范本
2014/10/29 职场文书
2014年妇委会工作总结
2014/12/10 职场文书
2015年语文教研组工作总结
2015/05/23 职场文书
laravel添加角色和模糊搜索功能的实现代码
2021/06/22 PHP
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫
MySQL串行化隔离级别(间隙锁实现)
2022/06/16 MySQL