javascript动态增删事件兼容IE和FF

<script>
function c2(obj)
{
alert(obj);
}
function cleart()
{
var btn = document.getElementById('btn');
btn.detachEvent("onclick",cc);
}
function setevent()
{
var btn = document.getElementById('btn');
var fn = "c2('dddd')";
btn.attachEvent("onclick",cc=function(){eval(fn);});
}
</script>
  <input type="button" id="btn"  value="attach/detachEvent" />
  <input type="button" id="btn1" onclick="cleart()" value="clear" />
  <input type="button" id="btn2" onclick="setevent()" value="setevent" />
但对写在HTML里的Onclick=“XXX”的事件,是无法用此种方法取消的
可以采用下述方法
<script>
function test(a){
alert(a)
}
var fn = "test('test呆')";
</script>
<input type="button" value="执行事件" id="btn1" />
<input type="button" value="增加单击事件" onclick="document.getElementById('btn1').setAttribute('onclick',document.all ? function(){eval(fn);} :fn);"/>
<input type="button" value="增加悬浮事件" onclick="document.getElementById('btn1').setAttribute('onmouseover',document.all ? function(){eval(fn);} :fn);"/>
<input type="button" value="取消单击事件" onclick="document.getElementById('btn1').setAttribute('onclick',null)" />
<input type="button" value="取消悬浮事件" onclick="document.getElementById('btn1').setAttribute('onmouseover',null)" />

posted @ 2009-02-06 15:17  bigdog  阅读(268)  评论(0编辑  收藏  举报