<SCRIPT type=text/javascript>
function bFunc(obj){obj.doSomething}function aFunc(obj){ document.body.attachEvent("onkeydown", new Function("bFunc("+obj+")"));
} 就是在aFunc里将body的onkeydown事件与bFunc绑定,但是怎么样写这个new Function语句才能把obj这个参数传递到bFunc去?
不知道表达的请不清楚……
function bFunc(obj){obj.doSomething}function aFunc(obj){ document.body.attachEvent("onkeydown", new Function("bFunc("+obj+")"));
} 就是在aFunc里将body的onkeydown事件与bFunc绑定,但是怎么样写这个new Function语句才能把obj这个参数传递到bFunc去?
不知道表达的请不清楚……
function bFunc(obj){ alert(obj.doSomething)} function aFunc(obj){ document.attachEvent("onkeydown", function(){bFunc(obj)});
}
aFunc({doSomething:'doSomething'});
</script>
多谢多谢:)
这里用function和new function有什么不同啊?
<div id="title2" class="button1">2</div>
<div id="title3" class="button1">3</div>
<div id="title4" class="button1">4</div>
<div id="title5" class="button1">5</div><script>
for (i=0;i<5;i++){
var x = "title1"+(i+1);
var t = document.getElementById(x);
t.attachEvent("onclick",function(){doClick(x)});}function doClick(x){
alert("Do Click!"+x);
}function doMouseOut(){
alert("Do MouseOut!");}</script>这段代码里,我想获得单击div时弹出对应的id,但是传入的参数全部是“title5”
这里的参数又应该如何传递才能获得正确的结果?
for (i=0;i<5;i++){
var x = "title1"+(i+1);
var t = document.getElementById(x);
t.attachEvent("onclick",
(function(x){
return function (){
doClick(x)
}
})(x);
);
}
var x = "title1"+(i+1);//此处id笔误啦for (i=0;i<5;i++){
var x = "title" + (i +1);
var t = document.getElementById(x);
t.onclick = function(x){return function(){ doClick(x) }}(x);
t.onmouseout = function(){return function(){ doMouseOut() }}();
}
var x = "title" + (i +1);
var t = document.getElementById(x);
(function (x){
t.attachEvent("onclick",function(){doClick(x)});
})(x)
}
var x = "title" + (i +1);
var t = document.getElementById(x);
(function (){ var x=arguments[0];
t.attachEvent("onclick",function(){doClick(x)});
})(x)
}
BTW,楼主的原始代码中的:new Function("bFunc("+obj+")"),除了传递参数的方法不妥外,还有语法错误。在双(单)引号中嵌套双(单)引号是非法的,因为上引号会采取就近原则,匹配离其最近的下引号,因此你的代码其实被截断成几部分了,肯定run不起来。