<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<input id="test" type="button" ><body>
<script type="text/javascript">
function a(a1){
alert("a : "+a1);
}
function b(b1){
alert("b : "+b1);
}
var lis = [{name:"onclick",fun:a},{name:"onmouseover",fun:b}]
var bu = document.getElementById('test');for(var ins = 0;ins <lis.length;ins++){
var evname = lis[ins].name;
var fun = lis[ins].fun;
bu[evname]=function(){
fun("ss"+ins);
}
}
</script>
</body>
</html>问题描述:像这样添加事件 onclick和onmouseover都只调用了b函数,为什么会出现这种覆盖,有没有高手
遇到过同类的问题,请高手们指点指点
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<input id="test" type="button" ><body>
<script type="text/javascript">
function a(a1){
alert("a : "+a1);
}
function b(b1){
alert("b : "+b1);
}
var lis = [{name:"onclick",fun:a},{name:"onmouseover",fun:b}]
var bu = document.getElementById('test');for(var ins = 0;ins <lis.length;ins++){
var evname = lis[ins].name;
var fun = lis[ins].fun;
bu[evname]=function(){
fun("ss"+ins);
}
}
</script>
</body>
</html>问题描述:像这样添加事件 onclick和onmouseover都只调用了b函数,为什么会出现这种覆盖,有没有高手
遇到过同类的问题,请高手们指点指点
function a(a1){
alert("a : "+a1);
}
function b(b1){
alert("b : "+b1);
}
var lis = [{name:"onclick",fun:a},{name:"onmouseover",fun:b}]
var bu = document.getElementById('test');for(var ins = 0;ins <lis.length;ins++){
(function(ins){
var evname = lis[ins].name;
var fun = lis[ins].fun;
bu[evname]=function(){
fun("ss"+ins);
}
})(ins)
}
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<input id="test" type="button" ><body>
<script type="text/javascript">
var addEvent = function(otarget, stype, fnhandler ){
otarget.attachEvent ? otarget.attachEvent("on"+stype, fnhandler) : otarget.addEventListener(stype,fnhandler,false);
};
function a(a1){
alert("a : "+a1);
}
function b(b1){
alert("b : "+b1);
}
var lis = [{name:"click",fun:a},{name:"mouseover",fun:b}]
var bu = document.getElementById('test');for(var ins = 0;ins <lis.length;ins++){
var evname = lis[ins].name;
var fun = lis[ins].fun;
addEvent(bu,evname, function(ins){
return function(){
fun("ss"+ins);
}
}(ins));}
</script>
</body>
</html>
var evname = lis[ins].name;
var fun = lis[ins].fun;
bu[evname]=fun;
}
var evname = lis[ins].name;
var fun = lis[ins].fun;
bu[evname]=fun.apply(null,"ss"+ins);
}
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<input id="test" type="button" ><body>
<script type="text/javascript">
function a(a1){
alert("a : "+a1);
}
function b(b1){
alert("b : "+b1);
}
var lis = [{name:"onclick",fun:a},{name:"onmouseover",fun:b}]
var bu = document.getElementById('test');for(var ins = 0;ins <lis.length;ins++){
var evname = lis[ins].name;
var fun = lis[ins].fun;
bu[evname]=function(ins){
return function(){fun("ss"+ins)};
}(ins)
}
</script>
</body>
</html>