求助--动态添加的表格行绑定函数的问题? 谢谢!!

yhl05050118 2009-05-01 12:00:56
1.在当前页面打开的页面中为当前页面一表格(<table id=goodlist> )添加一行。
<tr onDblClick="javascript:
var newTr=window.opener.document.getElementById('goodlist').insertRow()
newTr.ondblclick=function(){
getGood();//我想在添加的一行双击相应getGood(),但是没反映??
}
var newTd0=newTr.insertCell();
…………
>

请问要怎样才能将这个函数绑定到newTr的ondblclick事件上??
...全文
105 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
上山浦鱼 2009-05-06
  • 打赏
  • 举报
回复
楼主 那动态生成的表格,再给表格赋事件, 会产生 '循环闭包问题';

for(var i=0;i<data.length;i++)
{
var item = data[i];
var _tr = _t1.insertRow(_t1.rows.length); //_t1 为'table', _tr为 'tr',_td为 'td'
_tr.id = "_tr"+i;
_tr.style.display = "none"; //行不可见
_tr.name = "data_tr";
_tr.style.borderColor = "#DCDCDC";
var over = new mouseoverChangePack(_tr.id); //改变行色
_tr.onmouseover = over.click;
var out = new mouseoutChangePack(_tr.id);
_tr.onmouseout = out.click;


var _td1 = _tr.insertCell();
_td1.innerHTML = item[0]+"\t\t\t"+item[1]+"<br/>"+item[2];
}


/*** 改变行色 ***/
function mouseoverChangePack(id)
{
this.click = function () //Javascript闭包循环 问题
{
var _tr = window.parent.frames['blank'].document.getElementById(id);
_tr.style.backgroundColor = "lightblue";
}

}



楼主可以的话,就给我分呀!!
yhl05050118 2009-05-02
  • 打赏
  • 举报
回复
newTr.ondblclick=function(){
alert("here!");
// getgood();
};
这样添加行后,没有错误,但是双击添加的行完全没得反应!

确实不知道怎么办了?希望能够找到解决的办法。
natineprince 2009-05-02
  • 打赏
  • 举报
回复
把完整点的代码拉上来吧.
natineprince 2009-05-02
  • 打赏
  • 举报
回复
alert("getgood);
这里应该直接
alert(getgood);
吧...
这样才能看到能不能拿到这函数呢.
yhl05050118 2009-05-02
  • 打赏
  • 举报
回复
1. 父页面的button
<input type="button" name="good_add" value="参考订货单" onClick="window.open('purorderview.asp?action=pio','','directorys=no,toolbar=no,status=no,menubar=no,scrollbars=yes,resizable=no,width=853,height=470,top=176,left=161')">
<table id="goodlist" width="778" border="1" cellpadding="0" cellspacing="0" style="table-layout:fixed">
……
2.
页面purorderview.asp页面的
<table name="purorder">
<tr onDblClick="javascript:
var newTr=window.opener.document.getElementById('goodlist').insertRow();
newTr.ondblclick=function(){
alert("getgood);
getgood(); //添加后的行双击响应?getgood在父页面已实现
};
var newTd0=newTr.insertCell();
……
window.close();"
>



>
hookee 2009-05-01
  • 打赏
  • 举报
回复
将相关操作函数写在父页面,然后
newTr.ondblclick = 定义在父页面中函数;
试试看
natineprince 2009-05-01
  • 打赏
  • 举报
回复
你自己的写法也没问题
但是把里面的getGood()改成alert(getGood)再试试就知道有没有问题了.
gengzhw 2009-05-01
  • 打赏
  • 举报
回复
按你所写的代码来看,getGood() 必须在 window.opener 页面中实现,也就是与那个表格 goodlist 在同一个页面中加载
yhl05050118 2009-05-01
  • 打赏
  • 举报
回复
谢谢hookee!!
还是不行。
1.newTr.ondblclick=getGood 双击没得反应?
2.newTr.ondblclick=getGood()出现运行时间错误--尚未实现。我把getGood()函数添加到子页面中也是出现相同的错误?
getGood()函数应该是没得问题,我在父页面绑定没得问题。

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧