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++;
}
}
答案 0 :(得分:1)
您需要使用事件委派来实现此目的。
使用Javascript
,您可以这样做:
document.querySelector('element').addEventListener('click', function(event) {
// on click action here..
});
使用jQuery
,您可以这样做:
$(document).on("click", "element", function(){
// on click action here..
});
答案 1 :(得分:0)
您可以使用on()
功能来实现事件委派。
这样,您可以选择每个带有类.dynamic
$(document).on('click', '.dynamic', function() {
var that = $(this);
that.css({'background-color': 'red'});
// do your stuff here ..
});
答案 2 :(得分:0)
我得到了以下解决方案,它运行正常。
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;
}