先看两个 例子:
例一:
<
script
language
="javascript"
>
...
function addChange(id,ds)
...{
var sid = document.getElementById(id);
sid.onchange = new Function("dds('"+ds+"')");
}
function dds(d)
...{
document.getElementById("xx").innerHTML = d;
}
</ script >
< a href ="javascript:addChange('s','werdsf')" > adfad </ a >
< select name ="s" id ="s" >
< option value ="1" > 1 </ option >
< option value ="2" > 2 </ option >
</ select >
< div id ="xx" ></ div >
function addChange(id,ds)
...{
var sid = document.getElementById(id);
sid.onchange = new Function("dds('"+ds+"')");
}
function dds(d)
...{
document.getElementById("xx").innerHTML = d;
}
</ script >
< a href ="javascript:addChange('s','werdsf')" > adfad </ a >
< select name ="s" id ="s" >
< option value ="1" > 1 </ option >
< option value ="2" > 2 </ option >
</ select >
< div id ="xx" ></ div >
例二:
<
script
language
="javascript"
>
...
function addChange(id,ds)
...{
var sid = document.getElementById(id);
sid.attachEvent("onchange",function ()...{dds(ds)});
}
function dds(d)
...{
document.getElementById("xx").innerHTML = d;
}
</ script >
< a href ="javascript:addChange('s','werdsf')" > adfad </ a >
< select name ="s" id ="s" >
< option value ="1" > 1 </ option >
< option value ="2" > 2 </ option >
</ select >
< div id ="xx" ></ div >
function addChange(id,ds)
...{
var sid = document.getElementById(id);
sid.attachEvent("onchange",function ()...{dds(ds)});
}
function dds(d)
...{
document.getElementById("xx").innerHTML = d;
}
</ script >
< a href ="javascript:addChange('s','werdsf')" > adfad </ a >
< select name ="s" id ="s" >
< option value ="1" > 1 </ option >
< option value ="2" > 2 </ option >
</ select >
< div id ="xx" ></ div >
这两个例子都是给事件加参数的方法.所不同的是,例一中:用的是new Function,例二中用的是attachEvent.
如果没有参数,则在例一中应改为:sid.onchange = dds;在例一中也可以这样写:sid.setAttribute("onchange",function (){dds(ds)});
注意,这里的dds,不能带参数,不能带(),他表示的是这个把这个函数赋给onchange事件,如果带了括号,就表示把这个函数dds的返回值赋给onchange事件,这是不对的,因为,我们不能把一个值赋给一个事件.例二中也是同样的道理