在dbliclick - eventlistener之后得到错误的id

时间:2016-01-26 18:41:04

标签: javascript event-listener

我使用createElement创建一个表。表,tr和td得到一个id。每个td都有一个dblclick eventlistener。因此,当您执行dblick时,将显示div。

但是我找回了错误的ID。我只得到最后一个条目的id。

我检查调试模式中的条目,没关系,为什么我只得到最后一个id?

我想获取元素的id,当我做dblclick时。

插入功能:

countTable ++;

document.getElementById("counterTable").value = countTable;
var range= sel.getRangeAt(0);

myParent=document.getElementById("iframe_editor").contentWindow.document.body;
table=document.createElement("TABLE");

table.id = "tableid"+countTable;

for (i = 1; i <= document.getElementById("numoftr").value; i++)
{
    tr = document.createElement("TR");
    tr.id = table.id+"-"+"trid"+i;

    for (j = 1; j<= document.getElementById("numoftd").value; j++)
    {
        td = document.createElement("TD");
        td.id = tr.id+"-"+"tdid"+j;

        td.addEventListener( 'dblclick', function(){
            loadTableAttribute(td.id);
        },td.id);

        tr.appendChild(td);             
    }
    table.appendChild(tr);
}
table.appendChild(emptyNode);

myParent.appendChild(table);
range.insertNode(table);

LoadTableAttribute

function loadTableAttribute(tdid)
{
    alert(tdid);
}

1 个答案:

答案 0 :(得分:0)

使用var tr = ..var td = ..并在听众中将this.id发送给该函数:loadTableAttribute(this.id);

编辑关于var使用情况的好帖子是this。始终在相关范围内使用var