在各浏览器中动态添加事件-参数篇
动态添加事件有一难题便是参数,比如 obj.onclick = Foo(1); 这是不允许的。
对于 FireFox 利用 setAttribute 比较方便,因为 setAttribute 指定事件跟 HTML 中指定事件形式一样。
var obj = document.getElementById("obj");
obj.setAttribute("onclick", "javascript:Foo(1);");
而 IE 中不能用 setAttribute 添加事件,我们推荐下面这种方法:
function BindEvent()
{
var msg = "参数";
if (window.attachEvent)
{
//支持 IE
btn.attachEvent("onclick", function () { showMessage(msg) });
}
else
{
//支持 FF
btn.addEventListener("click", function () { showMessage(msg) }, false);
}
}
function showMessage(msg)
{
alert(msg);
}
BindEvent();
{
var msg = "参数";
if (window.attachEvent)
{
//支持 IE
btn.attachEvent("onclick", function () { showMessage(msg) });
}
else
{
//支持 FF
btn.addEventListener("click", function () { showMessage(msg) }, false);
}
}
function showMessage(msg)
{
alert(msg);
}
BindEvent();
作者:ChenLuLouis
出处:http://www.cnblogs.com/chenlulouis/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
该文章也同时发布在我的独立博客中-chenlulouisBlog。
posted on 2009-10-19 10:56 chenlulouis 阅读(179) 评论(0) 编辑 收藏 举报