更改按钮文本内容的问题
Problem with changing button text content
我正在 Javascript 制作一款战舰游戏,但我遇到了更改按钮文本内容的功能的问题。我想在用户单击按钮时按钮的文本内容发生变化。
function changePosition(eventBtn){
if(eventBtn.target.textContent=='perpendicularly'){
eventBtn.target.textContent='horizontally';
}
else{
eventBtn.target.textContent='perpendicularly';
}}
但是当我点击按钮时没有任何变化。我认为问题出在 else 语句上,因为当我删除该语句时,一切正常。
确保您将侦听器适当地添加到按钮。
function changePosition(event) {
if (event.target.textContent === 'Perpendicularly') {
event.target.textContent = 'Horizontally';
} else {
event.target.textContent = 'Perpendicularly';
}
}
document.querySelector('.direction').addEventListener('click', changePosition);
<button class="direction">Perpendicularly</button>
关于以下声明:
But when I click on the button nothing changes. I think the problem is with the else statement because when I delete this statement all work.
您的活动可能会触发两次。它可能会两次调用您的事件侦听器,有效地恢复它刚刚对文本所做的更改。
改进建议
魔术字符串不好,我建议改用可枚举值。
const Direction = {
PERPENDICULARLY: 'Perpendicularly',
HORIZONTALLY: 'Horizontally'
};
const changePosition = event => {
event.target.textContent =
event.target.textContent === Direction.PERPENDICULARLY
? Direction.HORIZONTALLY
: Direction.PERPENDICULARLY
};
document.querySelector('.direction').addEventListener('click', changePosition);
<button class="direction">Perpendicularly</button>
我正在 Javascript 制作一款战舰游戏,但我遇到了更改按钮文本内容的功能的问题。我想在用户单击按钮时按钮的文本内容发生变化。
function changePosition(eventBtn){
if(eventBtn.target.textContent=='perpendicularly'){
eventBtn.target.textContent='horizontally';
}
else{
eventBtn.target.textContent='perpendicularly';
}}
但是当我点击按钮时没有任何变化。我认为问题出在 else 语句上,因为当我删除该语句时,一切正常。
确保您将侦听器适当地添加到按钮。
function changePosition(event) {
if (event.target.textContent === 'Perpendicularly') {
event.target.textContent = 'Horizontally';
} else {
event.target.textContent = 'Perpendicularly';
}
}
document.querySelector('.direction').addEventListener('click', changePosition);
<button class="direction">Perpendicularly</button>
关于以下声明:
But when I click on the button nothing changes. I think the problem is with the else statement because when I delete this statement all work.
您的活动可能会触发两次。它可能会两次调用您的事件侦听器,有效地恢复它刚刚对文本所做的更改。
改进建议
魔术字符串不好,我建议改用可枚举值。
const Direction = {
PERPENDICULARLY: 'Perpendicularly',
HORIZONTALLY: 'Horizontally'
};
const changePosition = event => {
event.target.textContent =
event.target.textContent === Direction.PERPENDICULARLY
? Direction.HORIZONTALLY
: Direction.PERPENDICULARLY
};
document.querySelector('.direction').addEventListener('click', changePosition);
<button class="direction">Perpendicularly</button>