我想要给我的多个label 动态添加点击事件,但是我目前的方法在添加点击事件后,传进去的参数都是最后一次赋值的参数。
有没有哪位大哥知道怎么解决?
下面是我的代码。
for(var i = 0; i < val.xsd.xsd.length; i++)
{
document.getElementById("ctl00_ContentBody_UltraWebTab1__ctl0_CheckLineShow1_Label" + (i + 1)).innerHTML = val.xsd.xsd[i].XSDMC;
var xsdbh = val.xsd.xsd[i].XSDBH;
var lxid = val.xsd.xsd[i].LXID;
document.getElementById("ctl00_ContentBody_UltraWebTab1__ctl0_CheckLineShow1_Label" + (i + 1)).onclick = function showModifyDlg(){
var res=openStdDlg("CheckPointModifyDlg.aspx?XSDBH="+xsdbh+"&LXID="+lxid,'',475, 430);
if (res == "ok")
{
__doPostBack();
__doPostBack('BtnSelectChg','');
}
else
{
return false;
}
};
有没有哪位大哥知道怎么解决?
下面是我的代码。
for(var i = 0; i < val.xsd.xsd.length; i++)
{
document.getElementById("ctl00_ContentBody_UltraWebTab1__ctl0_CheckLineShow1_Label" + (i + 1)).innerHTML = val.xsd.xsd[i].XSDMC;
var xsdbh = val.xsd.xsd[i].XSDBH;
var lxid = val.xsd.xsd[i].LXID;
document.getElementById("ctl00_ContentBody_UltraWebTab1__ctl0_CheckLineShow1_Label" + (i + 1)).onclick = function showModifyDlg(){
var res=openStdDlg("CheckPointModifyDlg.aspx?XSDBH="+xsdbh+"&LXID="+lxid,'',475, 430);
if (res == "ok")
{
__doPostBack();
__doPostBack('BtnSelectChg','');
}
else
{
return false;
}
};
{
document.getElementById("ctl00_ContentBody_UltraWebTab1__ctl0_CheckLineShow1_Label" + (i + 1)).innerHTML = val.xsd.xsd[i].XSDMC;
var xsdbh = val.xsd.xsd[i].XSDBH;
var lxid = val.xsd.xsd[i].LXID;
document.getElementById("ctl00_ContentBody_UltraWebTab1__ctl0_CheckLineShow1_Label" + (i + 1)).onclick = function showModifyDlg(){
var res=openStdDlg("CheckPointModifyDlg.aspx?XSDBH="+xsdbh+"&LXID="+lxid,'',475, 430);
if (res == "ok")
{
__doPostBack();
__doPostBack('BtnSelectChg','');
}
else
{
return false;
}
};
{
document.getElementById("ctl00_ContentBody_UltraWebTab1__ctl0_CheckLineShow1_Label" + (i + 1)).innerHTML = val.xsd.xsd[i].XSDMC;
var xsdbh = val.xsd.xsd[i].XSDBH;
var lxid = val.xsd.xsd[i].LXID;
document.getElementById("ctl00_ContentBody_UltraWebTab1__ctl0_CheckLineShow1_Label" + (i + 1)).onclick = (function(xsdbh,lxid){ return function (xsdbh,lxid){
var res=openStdDlg("CheckPointModifyDlg.aspx?XSDBH="+xsdbh+"&LXID="+lxid,'',475, 430);
if (res == "ok")
{
__doPostBack();
__doPostBack('BtnSelectChg','');
}
else
{
return false;
}
};
})(xsdbh,lxid);
要用闭包 生成每个按钮事件的独立变量
不然所有按钮的事件看到的都是相同的 xsdbh,lxid