簡體   English   中英

鼠標懸停事件不起作用(vanilla Javascript)

[英]Mouseover event don't work (vanilla Javascript)

我想做一個戰艦游戲,但在 Javascript 中的mouseover事件有問題。 我想制作一個 function,當鼠標懸停在該元素上時,它會將元素的文本內容更改為“X”。

Javascript:

var gridShips = document.querySelectorAll('.ships');

for(var i=0; i++; i<gridShips.length){
    gridShips[i].addEventListener('mouseover', function(e){placeShips(e)}, false);
}
function placeShips(e){
e.target.textContent = 'X';

}

但是當我將鼠標移到這個元素上時,什么都沒有改變。 只有當我單擊此元素時,文本內容才會更改為“X”。 我不知道問題出在哪里。

看來您的 for 循環不正確。 中間部分是被檢查為真/假的部分,最后一部分在每次迭代時運行(部分由分號分隔)。

嘗試將其從for(var i=0; i++; i<gridShips.length)更改for(var i=0; i<gridShips.length; i++)

您可以使用for...of循環,因為您不需要索引。

for(const ship of gridShips){
    ship.addEventListener('mouseover', function(e){placeShips(e)}, false);
}

javascript 中的循環標准是:

for(初始化器;停止條件;增量){...}

for ( 讓 i = 0; i < gridShips.length; i++ ) {... }

但是,也許我誤解了您要完成的工作,但我認為您想收聽單擊事件。 因為玩家需要 select 在輪到他們的戰艦上攻擊。 否則,當您將鼠標移到棋盤上時,您的回合就會用完,它會攻擊您首先將鼠標懸停在哪個方格上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM