//以下代码IE Only function show(){ //点击对象1就是对象1,对象2就是对象2 //P.S.也有可能是其他对象,这种方法不保险 var obj = window.event.srcElement;
//或者使用某种映射 var name = _args[obj.id] //_args为事先定义好的映射对象 var name = obj.name; //Todo } addEvent(对象1,"mousedown",show); addEvent(对象2,"mousedown",show);其实个人不喜欢IE的addEvent方法,在调用函数中的this不是注册的对象而是window,很不方便 推荐使用改造过的0级DOM的事件注册方法,既对象.onXXXX = xxx;的方式可以去参考下Jquery等的源码,看看里面的事件注册方式,都是跨浏览器的,而且对调用函数的作用域与event对象都进行了统一
addEvent(对象2,"mousedown", function (){show('参数2')});
//以下代码IE Only
function show(){
//点击对象1就是对象1,对象2就是对象2
//P.S.也有可能是其他对象,这种方法不保险
var obj = window.event.srcElement;
//或者使用某种映射 var name = _args[obj.id]
//_args为事先定义好的映射对象
var name = obj.name;
//Todo
}
addEvent(对象1,"mousedown",show);
addEvent(对象2,"mousedown",show);其实个人不喜欢IE的addEvent方法,在调用函数中的this不是注册的对象而是window,很不方便
推荐使用改造过的0级DOM的事件注册方法,既对象.onXXXX = xxx;的方式可以去参考下Jquery等的源码,看看里面的事件注册方式,都是跨浏览器的,而且对调用函数的作用域与event对象都进行了统一
比如
对象1.hdmousedown=function(){show();}
addEvent(对象1,"mousedown",对象1.hdmousedown);
yeery={}
show=function(){
yeery.name="123";
alert(yeery.name);
}
addEvent(对象1,"mousedown",show);
改变yeery.name=456值.重新绑定
addEvent(对象2,"mousedown",show);然后两个对象都是响应的都是456所以不行..不能完成一个函数绑定两对象,并实现传参... 求救中..
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>绑定函数</title>
<script src="jquery-1.3.2.js"></script>
<script>
$(document).ready(function(){
$(".btn").mousedown(function(){
var temp_name = $(this).attr("name");
show(temp_name);
});
function show(name){
alert("该对象名字:"+name);
}
});
</script>
</head><body>
<input type="text" value="点击" name="对象1" class="btn" />
<input type="text" value="点击" name="对象2" class="btn" />
</body>
</html>
我的是jquery
本来也可以删除,就是创建每绑定一个创建一个函数,生成一个句柄..删除事件时,同时要删除创建的函数.如果用addEvent(对象,event ,function(){所绑定的函数}) 这样可以添加.就是不知怎么删除呀