Translate Into English Coffee & Tea
ASP.NET 中的 AJAX ASP.NET 画图全接触 ASP.NET 与 XML 声明式数据绑定 ASP.NET 网页抓取
C# 基础 C# 类教程 C# 加密 ASP.NET 成员资格 非“自动化”处理 Excel
QuickAjax Ajax 完美的语法高亮器 Silverlight Popfly
通栏广告

在各浏览器中动态添加事件-参数篇 一文中提到了 eventStr,这是为 IE 动态设置事件时使用的变量(常量)。

一、该值不可改变。

<input type="button" value="111" id="b1">
<input type="button" value="222" id="b2">
<script type="text/javascript" language="javascript">
<!--
function F1()
{
    alert("F1");
}
function F2()
{
    alert("F2");
}
var eventStr = "F1();";
document.getElementById("b1").attachEvent("onclick", function(){eval(eventStr)});
eventStr = "F2();"; //错误,不能改变 eventStr。
document.getElementById("b2").attachEvent("onclick", function(){eval(eventStr)});
-->
</script>

可以看出,eventStr 开始为 "F1();",后来后改变为 "F2();",这就造成点击两个按钮触发的都是 F2 函数

二、但可以这么做。

<input type="button" value="111" id="b1">
<input type="button" value="222" id="b2">
<script type="text/javascript" language="javascript">
<!--
function F1()
{
    alert("F1");
}
function F2()
{
    alert("F2");
}
function AddEvent(obj, eventProp, eventStr)
{
    obj.attachEvent(eventProp, function(){eval(eventStr)});
}
AddEvent(document.getElementById("b1"), "onclick", "F1();");
AddEvent(document.getElementById("b2"), "onclick", "F2();");
-->
</script>
文章评论
标题:必填
内容:
文章信息