如何将参数传递给动态设置的Javascript函数?
问题描述:
好吧,我有一个在这样的表中创建一个行的Javascript:如何将参数传递给动态设置的Javascript函数?
function AddRow(text,rowID)
{
var tbl = document.getElementById('tblNotePanel');
var row = tbl.insertRow(tbl.rows.length);
var cell = row.insertCell();
var textNode = document.createTextNode(text);
cell.id = rowID;
cell.style.backgroundColor = "gold";
cell.onclick = clickTest;
cell.appendChild(textNode);
}
在上面的功能我设置单元格的“点击”功能调用另一个名为“clickTest” JavaScript函数。我的问题是,当我分配“的onclick”事件叫“clickTest”,我怎么设置参数信息当“clickTest”方法被调用该单元格的“点击”事件发送?或者,如何在“clickTest”函数中访问单元的ID?
感谢, 杰夫
答
试试这个:
cell.onclick = function() { clickTest(rowID); };
的想法是,你要绑定的onclick处理程序,以匿名函数。匿名函数以rowID作为参数调用clickTest。
答
在clickTest功能,您应该有权访问的this
变量。尝试clickTest
功能这里面:
alert(this.id);
这指的是触发事件的DOM元素。
基本上没有真正将参数传递给事件处理函数的方式。原因是浏览器正在执行基于事件的函数,而实际上并没有调用该函数。
您可以使用闭包,让你可以在你指定的事件处理函数访问局部变量(于封闭)。这将是这样的:
cell.onclick = function() { alert(this.id); alert(cell.id); };
是cell.id
是局部范围的被执行的事件处理程序的范围仍然被认为是可变的。