Javascript- 将点击事件添加到动态生成的表格单元格中
Javascript- Adding click event to dynamically generated cell of table
addEventListener()
不起作用?
var mytable = document.getElementById('GridTable');
for (var r = 0; r <rows; r++)
{
var row = mytable.insertRow(r);
for (var c = 0; c <cols; c++)
{
var cell=row.insertCell(c);
cell.id='td'+nn;
//alert(cell.id);
cell.innerHTML=' ';
cell.className="dynamic";
cell.addEventListener("click", function() {bcolor1('red',cell.id);});
nn++;
}
}
您需要使用事件委派来实现此目的。
使用 Javascript
,您可以这样做:
document.querySelector('element').addEventListener('click', function(event) {
// on click action here..
});
使用 jQuery
,您可以这样做:
$(document).on("click", "element", function(){
// on click action here..
});
了解更多:了解事件委派 | jQuery
您可以使用on()
函数来实现事件委派。
这样,您就可以选择每个动态添加的元素,并具有类.dynamic
$(document).on('click', '.dynamic', function() {
var that = $(this);
that.css({'background-color': 'red'});
// do your stuff here ..
});
我得到了以下解决方案,它工作正常.
var mytable = document.getElementById('GridTable');
for (var r = 0; r <trow; r++)
{
temp=noc;
var row = mytable.insertRow(r);
for (var c = 0; c <tcol; c++)
{
cell=row.insertCell(c);
cell.id='td'+temp;
cell.style.width =cwidth;
cell.style.height =cheight;
//alert(cell.id);
//cell.innerHTML=' ';
cell.className="dynamic";
with ({ n: cell.id })
{
cell.onclick = function()
{
bcolor1('red',n);
};
cell.onmousemove=function()
{
bcolor('red',n);
}
}
temp++;
}
noc=noc-tcol;
}
相关文章:
- CSS-若窗口太小,滚动条会出现在“表格”单元格上
- 如何将jQuery/AAJAX结果放入表格单元格
- 使用下拉选择菜单高亮显示一行表格单元格
- 使用javascript下拉菜单更改表格单元格的颜色
- 表格单元格高度与背景高度匹配
- 在表格单元格中查找超链接
- 如何使用单击属性和工具提示动态创建表格单元格,该工具提示将超链接到页面
- 在 DIV 中定位表格单元格
- 单击时将表格单元格从范围更改为输入
- 使用 javascript 为 HTML 表格单元格指定颜色
- 将单击表格单元格重定向到其中的
- JQuery insertAfter();移动下一个表格单元格
- 单击并用CTRL+C复制值时高亮显示html表格单元格
- TinyMCE - 允许表格单元格元素作为有效的 html
- 使用jsp更改表格单元格的颜色
- 如何从表格单元格中删除html的某些部分
- 在动态表格单元格跨度中单击时更新一个权重值
- 从所选内容中选择选项,并在表格单元格中显示所选内容的信息
- 在输入字段之前提取表格单元格中的文本
- 使用外部 javascript 更改多个表格单元格中的文本