首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 动态添加 带参数 事件 的问题 [已结贴,结贴人:microsy]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-12-06 15:14:41 楼主
    想在页面加载后为某个TABLE的每一个td添加onclick事件处理,
    在HTML里直接嵌函数时没有什么问题.
    但是动态时遇到一些问题,添加完后运行时,
    在每一个TD中click都会显示最后一个TD的内容,不知道是哪里
    的事件绑定给覆盖了? 以下是代码,多谢.

    HTML code
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> <script language="JavaScript" type="text/javascript"> function init() { var table = document.getElementById("table1"); var trlen = table.rows.length; var tdlen = table.rows[0].cells.length; for (row=0; row < trlen; row++) { for (col=0; col < tdlen; col++) { ttt = table.rows[row].cells[col]; ttt.attachEvent("onclick",function(){ selcol(ttt) }); } } } function selcol(td) { alert(td.innerHTML); //其他代码...... } </script> </head> <body onload="init();"> <table id="table1" width="200" border="1"> <tr> <td>a</td> <td>aa</td> </tr> <tr> <td>b</td> <td>bb</td> </tr> </table> </body> </html>
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-12-06 15:25:211楼 得分:17
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无??文档 </title>
    <script language="JavaScript" type="text/javascript">
    function init()
    {
        var table = document.getElementById("table1");
        var trlen = table.rows.length;
        var tdlen = table.rows[0].cells.length;
       
        for (row=0; row < trlen; row++)
        {
            for (col=0; col < tdlen; col++)
            {
                (function (x,y){var ttt=table.rows[x].cells[y];ttt.attachEvent("onclick",function(){  selcol(ttt)  })})(row,col)
               
            }
        }
    }
    function selcol(td)
    {
        alert(td.innerHTML);
        //其他代?......
    }
    </script>
    </head>

    <body onload="init();">
    <table id="table1" width="200" border="1">
      <tr>
        <td>a </td>
        <td>aa </td>
      </tr>
      <tr>
        <td>b </td>
        <td>bb </td>
      </tr>
    </table>
    </body>
    </html>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-12-06 15:31:182楼 得分:1
    楼上正解 楼主的ttt当循环添加onclick后就一直是2了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-12-06 15:53:513楼 得分:1
    这种问题调试下就迎刃而解了,我刚学javascript二个星期,用VS.net2008解决一切像楼主这样的问题~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-12-06 16:23:174楼 得分:1
    要注意變量的作用域就可以。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2007-12-08 16:03:025楼 得分:0
    闭包问题,已解决,多谢,结贴~
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved