Javascript 在addEventListener管理的click事件中使用此选项
我正在尝试这段非常简单的代码,以在纯Javascript中实现TictaToe:Javascript 在addEventListener管理的click事件中使用此选项,javascript,this,Javascript,This,我正在尝试这段非常简单的代码,以在纯Javascript中实现TictaToe: function inizializza() { var x = document.querySelectorAll(".riga div"); var i; for (i = 0; i < x.length; i++) { document.querySelectorAll(".riga div")[i].addEventListener("click", cambia);
function inizializza()
{
var x = document.querySelectorAll(".riga div");
var i;
for (i = 0; i < x.length; i++) {
document.querySelectorAll(".riga div")[i].addEventListener("click",
cambia);
}
}
var segno = "X";
function cambia()
{
if (this.innerHTML != "")
{
alert("ERRORE!")
}
else
{
this.innerHTML = segno;
if (segno == "X")
segno = "O";
else
segno = "X";
}
}
函数
{
var x=document.queryselectoral(“.riga div”);
var i;
对于(i=0;i
函数()在body load上调用
当您单击.riga div(我游戏表中的一个单元格)时,事件单击应更改单元格中显示的文本:X或O。但这不起作用,因为我无法使用“this”kewyword检索单击的对象属性
我怎么做
非常感谢!
Giancarlo您可以在此处使用闭包 检查以下代码段
window.onload=function(){
阿利扎();
}
函数名为alizza(){
var x=document.queryselectoral(“.riga div”);
var i;
对于(i=0;i
1.
2.
3.
X
您可以使用传递的事件对象作为单击事件的第一个参数
event.target适用于大多数浏览器,event.srcement适用于少数旧的microsoft浏览器
function inizializza()
{
var x = document.querySelectorAll(".riga div");
console.log(x);
var i;
for (i = 0; i < x.length; i++) {
document.querySelectorAll(".riga div")[i].addEventListener("click",
cambia);
}
}
var segno = "X";
function cambia(event)
{
var element = event.target || event.srcElement;
if (target.innerHTML !== "")
{
alert("ERRORE!")
}
else
{
this.innerHTML = segno;
if (segno == "X")
segno = "O";
else
segno = "X";
}
}
函数
{
var x=document.queryselectoral(“.riga div”);
控制台日志(x);
var i;
对于(i=0;i
工作示例:那么
e.target
呢?