不是一个JavaScript程序员,但我会尽力回答:
你的代码只是在所有的“TD”元素使用初始化onclick事件clickHandler事件。
每个事件处理程序都会承认一个事件,该事件引用了该事件中的对象主体。所以,如果你实现clickHandler事件是这样的:
// Add event to your clickHandler prototype if not already present
funcion clickHandler(event) {
// Your existing code
event = event || window.event; // window.event used in IE<9
event.target.onclick = null; // event.target is the element clicked (myself!)
}
这样你的clickHandler事件将停用上一度被称为目标,这似乎是你问的onclick事件。我没有尝试过,但可能会工作或给你的想法。
编辑:完整的示例:
<html>
<head>
<title>Test</title>
<script language="javascript">
function clickHandler(event) {
window.alert("You clicked on an unclicked cell!");
event = event || window.event;
event.target.onclick = null;
}
window.onload = function() {
var trs = document.getElementsByTagName('td');
for(var i = 0; i < trs.length; i++)
{
trs[i].onclick = clickHandler;
}
}
</script>
</head>
<body>
<h1>Test</h1>
<table>
<tr>
<td>asdf</td>
<td>asdf</td>
<td>asdf</td>
</tr>
<tr>
<td>asdf</td>
<td>asdf</td>
<td>asdf</td>
</tr>
<tr>
<td>asdf</td>
<td>asdf</td>
<td>asdf</td>
</tr>
</table>
</body>
</html>
严正不起作用。 :( – user3344186
是的,它可以工作;试试更好,我已经用一个完整的工作示例编辑了答案,不是很优雅,我不是一个网络程序员 – roirodriguez
是的,它的功能:)谢谢。如果单元格已被点击,您能否解释如何运行检查? – user3344186