您的位置:首页 > Web前端 > JavaScript

attachEvent与new Function,js给事件加参数

2007-12-06 11:48 441 查看
先看两个 例子:

例一:




<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>

例二:




<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>

这两个例子都是给事件加参数的方法.所不同的是,例一中:用的是new Function,例二中用的是attachEvent.

如果没有参数,则在例一中应改为:sid.onchange = dds;在例一中也可以这样写:sid.setAttribute("onchange",function (){dds(ds)});

注意,这里的dds,不能带参数,不能带(),他表示的是这个把这个函数赋给onchange事件,如果带了括号,就表示把这个函数dds的返回值赋给onchange事件,这是不对的,因为,我们不能把一个值赋给一个事件.例二中也是同样的道理
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: