[英]Without a click event, determine element id or simulate a click event on a material ui button base and populate it with a character
我正在編寫一個修改后的井字游戲,用戶必須在他們選擇的方塊收到“O”或“X”之前輸入正確的響應。 我可以在同一台計算機上與兩個現場玩家一起正常工作。 當我添加一個玩家對抗自動響應的能力時,我無法放置“X”。 我可以計算出放置“X”的最佳方格(行和列),但無法在板上顯示它。 下面是顯示按鈕的代碼。 電路板布局可以是 3 到 10 之間的任意數字的正方形。
我跟蹤每個正方形的坐標(數據坐標),但不知道如何使用行和列在按鈕組中放置一個正方形。 我沒有自動用戶的點擊事件,但如果有一種方法可以在所選位置模擬點擊事件,那么我可以放置類似於實時用戶選擇的更新方式的“X”。 你能提供任何建議嗎?
const boardgui = board.map((row, rowId) => {
const columns = row.map((column, columnId) => (
<Grid key={columnId} item>
<ButtonBase >
<Paper
onClick={(e) => {
clickSquareHandler(e);
}}
elevation={4}
data-coord={rowId + ':' + columnId}
className={classes.Paper}>
<Icon
className={classes.Icon}
style={{fontSize: 78}}>
</Icon>
</Paper>
</ButtonBase>
</Grid>
));
return (
<Grid
key={rowId}
className={classes.Grid}
container
spacing={2}>
{columns}
</Grid>)
})
我的兒子能夠為我解決這個問題。 兩步。
id={"Square" + rowId.toString() + columnId.toString()}
let x = selectSquare.x;
let y = selectSquare.y;
let squareId = "Square" + x.toString() + y.toString();
console.log ("Board - automaticMover - squareId = ", squareId)
let squareElement = document.getElementById(squareId);
console.log ("Board - automaticMover - doc = ", squareElement)
let target = squareElement;
console.log ("Board - automaticMover - target = ", target)
let parent = squareElement.parentElement;
console.log ("Board - automaticMover - parent = ", parent)
let child = squareElement.children[0];
console.log ("Board - automaticMover - child = ", child)
board[x][y] = 'X'
child.innerHTML = 'close';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.