好吧,我有一个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);
}
Run Code Online (Sandbox Code Playgroud)
在上面的函数中,我设置了单元格的"onclick"函数来调用另一个名为"clickTest"的Javascript函数.我的问题是,当我分配"onclick"事件来调用"clickTest"时,如何在单元格的"onclick"事件上调用"clickTest"方法时设置要发送的参数信息?或者,如何在"clickTest"功能中访问单元格的ID?
谢谢,杰夫
tva*_*son 26
试试这个:
cell.onclick = function() { clickTest(rowID); };
Run Code Online (Sandbox Code Playgroud)
这个想法是你将onclick处理程序绑定到匿名函数.匿名函数使用rowID作为参数调用clickTest.
在 clickTest 函数中,您应该有权访问变量this
。在函数内部试试这个clickTest
:
alert(this.id);
Run Code Online (Sandbox Code Playgroud)
这将引用触发事件的 DOM 元素。
基本上,没有真正的方法将参数传递给事件处理函数。原因是浏览器正在根据事件执行该函数,而您实际上并未调用该函数。
您可以使用闭包,它允许您在分配事件处理函数时访问局部变量(到闭包)。那看起来像这样:
cell.onclick = function() { alert(this.id); alert(cell.id); };
Run Code Online (Sandbox Code Playgroud)
Werecell.id
是本地作用域变量,在执行事件处理程序时仍将其视为作用域内的变量。
归档时间: |
|
查看次数: |
27768 次 |
最近记录: |