JavaScript通过attachEvent和detachEvent方法处理带参数的函数

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5 <title>无标题文档</title>
6 <script language="javascript">
7
8    var theP;  //P标签对象
9
10    var show=function(msg){  //直接定义 function show(msg) 效果是一样的
11        return function(){
12            alert(msg+" from show()");
13
14            if(window.addEventListener){  //FF etc.
15                 theP.removeEventListener("click", theP.show11, false);
16            }
17            else{ //IE
18                 theP.detachEvent("onclick", theP.show11);
19            }
20        }
21    }
22
23    var show2=function(msg){    //直接定义 function show2(msg) 效果是一样的
24        return function(){
25            alert(msg+" from show2()");
26        }
27    }
28
29    function showDef(){
30        alert("showDef()");
31
32         if(window.addEventListener){  //FF etc.
33              theP.removeEventListener("click", showDef, false);
34         }
35         else{ //IE
36              theP.detachEvent("onclick", showDef);
37         }
38    }
39
40    window.onload=function(){
41        theP=document.getElementById("pid");
42
43        theP.show11=show("可以detach的带参数方法");
44       
45        if(window.addEventListener) // not IE
46        {
47            //for FF.etc
48            theP.addEventListener("click", theP.show11, false);
49            theP.addEventListener("click", showDef, false);
50        }
51        else
52        {
53            //for IE
54            theP.attachEvent("onclick", theP.show11);
55            theP.attachEvent("onclick", show2('不能detach的带参数方法'));//区别于上一个,这里不能detach
56           
57            theP.attachEvent("onclick", showDef);  //无参数的方法直接写
58        }
59    }
60 </script>
61
62 </head>
63
64 <body >
65 <div >
66    <p id="pid">Click Me</p>
67 </div>
68 </body>
69 </html>

出处:http://www.cnblogs.com/Freeway/archive/2009/06/03/1495561.html

时间: 2024-08-31 05:01:01

JavaScript通过attachEvent和detachEvent方法处理带参数的函数的相关文章

js 传递函数: JS中setInterval、setTimeout不能传递带参数的函数的解决办法

在JS中无论是setTimeout还是setInterval,在使用函数名作为调用句柄时都不能带参数,而在许多场合必须要带参数,这就需要想方法解决.一.采用字符串形式:--(缺陷)参数不能被周期性改变setInterval("foo(id)",1000);二.匿名函数包装 (推荐)window.setInterval(function()    {foo (id);    }, 1000);   这样就可以周期性执行foo(id)这个函数,而且把变量id传递进去:三.定义返回无参函数的

JS中setInterval、setTimeout不能传递带参数的函数的解决方案_javascript技巧

在JS中无论是setTimeout还是setInterval,在使用函数名作为调用句柄时都不能带参数,而在许多场合必须要带参数, 这就需要想方法解决. 一.采用字符串形式:--(缺陷)参数不能被周期性改变 setInterval("foo(id)",1000); 二.匿名函数包装 (推荐) 复制代码 代码如下: window.setInterval(function() { foo (id); }, 1000); 这样就可以周期性执行foo(id)这个函数,而且把变量id传递进去: 三

JavaScript 事件属性绑定带参数的函数_javascript技巧

例如不能采用这种调用方式:element.onclick = test();element.onclick = test(arg1,arg2);只能通过element.onclick = function(){ ... };或者element.onclick = test这种方式来实现,所以无法给函数传递参数.参考了大量的网上资料,解决这个问题的方式,以代码为例,如下所示: 复制代码 代码如下: function Handler() { }; Handler.prototype = { /* *

attachEvent的使用方法与传递参数[IE|firefox]_javascript技巧

比较好的解决办法可以用作用域,比较下下面的变量str在作用域内和作用域外的值 复制代码 代码如下: <input id="button1" type="button" value="按我" />  <script language="javascript">  window.onload=function(){      var obj=document.getElementById("but

javascript提取URL的搜索字符串中的参数(自定义函数实现)_javascript技巧

今天在犀牛书上发现了一个有用的函数 urlArgs(提取URL的搜索字符串中的参数).我们经常会看到有的页面链接地址后面会跟有参数,比如 http://www.xxx.com/?username=yyy&password=zzz 之类的,很多时候我们需要获得这些参数的值(yyy和zzz),那么就可以利用 urlArgs 函数,通过该函数的返回值(返回值是对象)的属性来获取. urlArgs 函数代码: 复制代码 代码如下: function urlArgs(){ var args = {}; v

Java反射调用带参数的函数

目前本文中只考虑函数参数为基本类型.包装类型.String类型.其他负责类型,以后再慢慢补充.代码如下: package com.zkn.newlearn.reflect; import java.io.Serializable; /** * Created by zkn on 2016/5/9. */ public class ReflectTest02 implements Serializable{ public void testVariableArgument(String str,c

JavaScript带有参数的函数

通过点击这个按钮,可以调用一个带参数的函数.该函数会输出这个参数.

JavaScript函数参数使用带参数名的方式赋值传入的方法

 这篇文章主要介绍了JavaScript函数参数使用带参数名的方式赋值传入的方法,实例分析了javascript函数传递参数的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了JavaScript函数参数使用带参数名的方式赋值传入的方法.分享给大家供大家参考.具体分析如下: 这里其实就是在给函数传递参数的时候,可以使用 参数名:参数值的方式传递,这样不会传递错.不过下面的代码是通过字典来实现的,不像python原封就支持这样的方法 ? 1 2 3 4 function

javascript-如何用JavaScript 修改一个带参数的 onclick 的方法???

问题描述 如何用JavaScript 修改一个带参数的 onclick 的方法??? 比如 添加 怎么通过javascript用 document.getElementById("foo").onclick修改onclick所调用的方法,换成另一个带参数的方法 解决方案 document.getElementById('foo').onclick=function(){ show(param); }; 如果感觉有用,请采纳 解决方案二: 重新再写一个,后写的会覆盖前写的