JavaScript为事件处理器传递参数 (转)
首先参考:javascript attachEvent和addEventListener 使用方法
attachEvent方法,为某一事件附加其它的处理事件。(不支持Mozilla系列)
addEventListener方法 用于 Mozilla系列
举例:
document.getElementById("btn").onclick = method1;
document.getElementById("btn").onclick = method2;
document.getElementById("btn").onclick = method3;
如果这样写,那么将会只有medhot3被执行
写成这样:
var btn1Obj = document.getElementById("btn1");
//object.attachEvent(event,function);
btn1Obj.attachEvent("onclick",method1);
btn1Obj.attachEvent("onclick",method2);
btn1Obj.attachEvent("onclick",method3);
执行顺序为method3->method2->method1
如果是Mozilla系列,并不支持该方法,需要用到addEventListener
var btn1Obj = document.getElementById("btn1");
//element.addEventListener(type,listener,useCapture);
btn1Obj.addEventListener("click",method1,false);
btn1Obj.addEventListener("click",method2,false);
btn1Obj.addEventListener("click",method3,false);
执行顺序为method1->method2->method3
var newopen = function(id,level)
{
return function()
{
opentree(id,level);//该函数为外部定义的一个执行函数;
}
}
x.attachEvent("onclick",newopen(id,parseInt(level)+1));
y.attachEvent("onclick",newopen(id,parseInt(level)+2));
think8848的简化代码:
if ( x.addEventListener) //如果浏览器为Firefox
{
x.addEventListener("click",function()
{
opentree(id,level); //opentree为外部定义的一个执行函数,id,level为实参;
});
}
else //浏览器为IE
{
x.attachEvent("onclick",function()
{
opentree(id,level);
});
}
方法二:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
</head>
<body>
<a href="#" id="mylink">这是连接</a>
<script type="text/javascript">
function AttachEvent(type, target, handler, owner)
{
var eventHandler = handler;
if(owner)
{
debugger;
// 在这里重新定义一个处理函数
eventHander = function(e)
{
handler.call(owner, e);
}
}
if(window.document.all)
target.attachEvent("on" + type, eventHander );
else
target.addEventListener(type, eventHander, false);
}
function MyLink_Click(e)
{
alert(this.tagName);
var target = e.srcElement || e.target;
alert(target.href);
}
function test()
{
var mylink = window.document.getElementById("mylink");
AttachEvent("click", mylink, MyLink_Click, mylink);
}
</script>
<input type="button" value="AttachEvent" οnclick="test()" />
</body>
</html>
转载于:https://www.cnblogs.com/fightLonely/archive/2011/03/22/1991029.html
JavaScript为事件处理器传递参数 (转)相关推荐
- jQuery事件之传递参数
jQuery事件之传递参数 转载▼ 我们经常使用jQuery中给DOM元素绑定事件来执行一些动态的功能,但是很少有人知道在jQuery中是如何来给DOM元素传递参数以及如何绑定自己定义的事件. ...
- vue 事件调用 传参_Vue 事件如何传递参数?
Vue 事件如何传递参数? 事件函数参数传递: 普通参数和事件对象传递格式如下: 调用函数传参 点秋香 vue事件绑定-参数传递实例如下: vue事件绑定-参数传递 xinbiancheng.cn { ...
- vue 点击事件传递多个参数_Vue子组件监听事件中传递参数的方法
在子组件中,我们可以通过以下方式监听事件: v-on:click="$emit('funcName',a)" 如果需要传多个参数,可以通过以下方式: v-on:click=&quo ...
- JavaScript中事件处理器中的event参数
在大部分浏览器中,当一个事件处理器被触发时,名为Event的类实例会作为第一个参数传入处理器中.而一直占据主流地位的ie却以自己专的方式行事,将Event实例保存到一个名为event的全局属性中. i ...
- JavaScript:如何给setTimeout传递参数
本文介绍一种在使用异步函数setTimeout时给其带上参数的方法. 写这篇文章的时候,在高级浏览器比如Google Chrome上,setTimeout已经支持带第二个以外的参数,而且IE10 .I ...
- jquery绑定点击事件形参_JQuery 绑定事件时传递参数的实现方法
如题,比如我想在$(":text").bind("keyup",funcionName);将当前的文本框作为参数传递给 functionName所代表的函数,应 ...
- vue中 @click 绑定点击事件 方法传递参数 typescript(通用)
话不多说还是直接上图 简单明了 <template><div id="header"><img src="../../assets/logo ...
- C#中在定义事件委托时怎样跨窗体传递参数
场景 C#中委托与事件的使用-以Winform中跨窗体传值为例: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100150700 ...
- javascript的事件绑定与事件委托
昨天有位web前端爱好者问关于javascript事件绑定和事件委托的知识,小编今天就来跟大家交流一下这个知识点! 事件绑定:事件是用户或者浏览器自身进行的特定的行为,这些事件都有自己特定的名字,如: ...
最新文章
- pip 20.3 新版本发布!即将抛弃 Python 2.x
- 理论篇 GIT使用笔记
- ISV客户博客系列:Persistent Systems 使用Windows Azure交付基于Java的CloudNinja项目
- 深入探讨JavaScript函数
- POJ NOI MATH-7830 求小数的某一位
- 《设计模式解析(第2版•修订版)》—第1章 1.4节应对变化:使用功能分解
- 可更新聚集列存储索引幻想
- RHEL 5.1 下面安装tftp服务
- 一个简易的QQ魔法卡片炼卡消耗计算器
- 学生学籍的计算机管理属于,随着计算机的飞速发展,其应用范围不断扩大,某学校学生学籍的计算机管理属于__应用领域。A.科学计...
- openwrt路由器打印机服务器设置_openwrt路由器打印机服务器设置_TP-Link无线路由器打印机设置指南...
- GIS定位和自定义图标
- SEG1数字中继模块(中继网关) 产品型号:SEG1
- 台式机耳机或音响使用
- C++排序算法利用EsayX实现过程可视化
- 细说jbd(journal-block-device) 源码分析
- 单相桥式有源逆变电路,单相半波可控整流电路,单相桥式半控整流电路,单相桥式全控整流电路
- G304电量查询与灯光讲解(驱动下载见上篇文章)
- 大淘客CMS建站入门教程
- 华为手机视频解码首屏时延比较大的问题
热门文章
- Matlab线性/非线性规划优化算法(4)
- php大量数据库抽象,PHP系列(十二)数据库抽象层pdo
- php dm,DM_cp.php
- wdos8系统服务器丢失,win8一键修复丢失DLL,常见dll丢失一键修复办法
- python学习与数据挖掘_python机器学习与数据挖掘
- 字符串固定长度 易语言_易语言宽字符数据类型怎么设置
- RNN、LSTM、GRU的原理和实现
- 软考信息安全工程师学习笔记三(1.3 信息安全管理基础)
- Maven的基本应用
- ES6-weakset集合