0

我正在尝试设置一个 onclick 事件处理程序。由于某种原因,这有效:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <script type="text/javascript">
        function init() {
            var td = document.getElementById("td");
            var table = document.createElement("table");
            var row = table.insertRow(0);
            var cell = row.insertCell(0);
            cell.innerHTML = "test";
            cell.onclick = function () { alert(); };
            td.appendChild(table);
        }
    </script>
</head>
<body id="td" onload="init()">
</body>
</html>

当把它放在外部 js 文件中时它不起作用:

function buildChessBoard() {
    var currentColor = white;
    //var table = "<table>";
    var table = document.createElement("table");          
    for (var i = 0; i < chessBoardsize / 8; i++) {
        //table += "<tr>";
        var row = table.insertRow(i);
        for (var j = 0; j < 8; j++) {
            //table += "<td class=" + currentColor + "Cell" + " id=" + (i * 8 + j) + " onclick=setCell(this)></td>";
            var cell = row.insertCell(j);
            cell.innerHTML = "test";
            cell.onclick = function () { alert(); };
            if (j != 7) {
                if (currentColor == white)
                    currentColor = gray;
                else
                    currentColor = white;
            }
        }
        //table += "</tr>";
    }
    //table += "</table>";
    //chessBoardDiv.innerHTML = table;
    chessBoardDiv.appendChild(table);
}

知道为什么吗?

4

0 回答 0