Javascript 其他事件监听器意外
Javascript Eventlistener unexpected else
有人能告诉我这个 eventListener 有什么问题吗?
我一直在上面收到意想不到的标记 'else',但不明白为什么。
JS:
hearts.forEach((span) => span.addEventListener("click", (event) => {
if( heart.classList.contains("liked")){
$('.photoLikes').each(function() {
sum = sum + (.35);
} ) ;
likeInfo.textContent= (parseFloat(sum).toFixed(0)) ;
} ;
else{
$('.photoLikes').each(function() {
sum = sum - (.35);
} ) ;
likeInfo.textContent= (parseFloat(sum).toFixed(0)) ;
} ;
}
完整代码CodePen(JS末尾注释中的事件监听器):
看起来你在 if 语句后多了一个分号:
if () {
} ;
else {
} ;
这些分号都不需要。
不要在 if/else 语句后放置分号。它们会破坏表达式,导致 else
不附加到 if
:
hearts.forEach((span) =>
span.addEventListener("click", (event) => {
if (heart.classList.contains("liked")) {
$(".photoLikes").each(function () {
sum = sum + 0.35;
});
likeInfo.textContent = parseFloat(sum).toFixed(0);
} else {
$(".photoLikes").each(function () {
sum = sum - 0.35;
});
likeInfo.textContent = parseFloat(sum).toFixed(0);
}
})
);
你最后还漏了两个右括号,我加进去了。
这里有两件事
else
前的分号无效
- 您错过了
span.addEventListener(
和 hearts.forEach(
的 2 个右括号
修改应该是
hearts.forEach((span) => span.addEventListener("click", (event) => {
if( heart.classList.contains("liked")){
$('.photoLikes').each(function() {
sum = sum + (.35);
} ) ;
likeInfo.textContent= (parseFloat(sum).toFixed(0)) ;
} // <-----------
else{
$('.photoLikes').each(function() {
sum = sum - (.35);
} ) ;
likeInfo.textContent= (parseFloat(sum).toFixed(0)) ;
}
})) // <-----------
有人能告诉我这个 eventListener 有什么问题吗? 我一直在上面收到意想不到的标记 'else',但不明白为什么。
JS:
hearts.forEach((span) => span.addEventListener("click", (event) => {
if( heart.classList.contains("liked")){
$('.photoLikes').each(function() {
sum = sum + (.35);
} ) ;
likeInfo.textContent= (parseFloat(sum).toFixed(0)) ;
} ;
else{
$('.photoLikes').each(function() {
sum = sum - (.35);
} ) ;
likeInfo.textContent= (parseFloat(sum).toFixed(0)) ;
} ;
}
完整代码CodePen(JS末尾注释中的事件监听器):
看起来你在 if 语句后多了一个分号:
if () {
} ;
else {
} ;
这些分号都不需要。
不要在 if/else 语句后放置分号。它们会破坏表达式,导致 else
不附加到 if
:
hearts.forEach((span) =>
span.addEventListener("click", (event) => {
if (heart.classList.contains("liked")) {
$(".photoLikes").each(function () {
sum = sum + 0.35;
});
likeInfo.textContent = parseFloat(sum).toFixed(0);
} else {
$(".photoLikes").each(function () {
sum = sum - 0.35;
});
likeInfo.textContent = parseFloat(sum).toFixed(0);
}
})
);
你最后还漏了两个右括号,我加进去了。
这里有两件事
else
前的分号无效- 您错过了
span.addEventListener(
和hearts.forEach(
的 2 个右括号
修改应该是
hearts.forEach((span) => span.addEventListener("click", (event) => {
if( heart.classList.contains("liked")){
$('.photoLikes').each(function() {
sum = sum + (.35);
} ) ;
likeInfo.textContent= (parseFloat(sum).toFixed(0)) ;
} // <-----------
else{
$('.photoLikes').each(function() {
sum = sum - (.35);
} ) ;
likeInfo.textContent= (parseFloat(sum).toFixed(0)) ;
}
})) // <-----------