我一直试着弄清楚为什么我的if语句永远不会触发。任何帮助将不胜感激!
var clickcounter = 0;
var buttonclicker = document.getElementById("buttonclicker");
function unblur() {
clickcounter = clickcounter + 1;
console.log(clickcounter);
}
if (clickcounter === 1) {
buttonclicker.textContent = "Unlock More";
alert(clickcounter);
}
变量clickcounter将等于或大于1.我首先尝试使用if(clickcounter => 1)并尝试if(clickcounter> 0)但这些都不起作用。我究竟做错了什么? 这是整个事物的代码:https://codepen.io/sage379/pen/JyppZv
答案 0 :(得分:1)
根据您的代码示例,unblur()
永远不会被调用,因此clickcounter
仍为0
。
答案 1 :(得分:0)
问题在于,一旦增加clickcounter
,就永远不会检查它是否已更改。在设置clickcounter = 0
后立即在您的脚本中执行一次检查。
以下是我在一个名为checkClickCounter()
的新功能中包装该检查的示例。每次按下单击按钮调用此函数时,都会在unblur()
中调用此函数。我将您的if语句更改回>=
,但由于您按1递增,因此在使用===
一次点击后它将始终返回true,因此此更改在您当前的代码中并不重要。
var clickcounter = 0;
var buttonclicker = document.getElementById("buttonclicker");
function unblur() {
clickcounter = clickcounter + 1;
checkClickCounter(clickcounter);
}
function checkClickCounter(count){
if (count >= 1) {
buttonclicker.textContent = "Unlock More";
//alert(clickcounter);
}
}
答案 2 :(得分:0)
请尝试使用以下代码段。如果我不理解您的要求,请告诉我。
var clickcounter = 0;
var buttonclicker = document.getElementById("buttonclicker");
function unblur() {
clickcounter = clickcounter + 1;
console.log(clickcounter);
if (parseInt(clickcounter) >= 1){
buttonclicker.textContent = "Unlock More";
}
}
答案 3 :(得分:0)
将你的if语句放在unblur中:
var clickcounter = 0;
var buttonclicker = document.getElementById("buttonclicker");
function unblur() {
clickcounter = clickcounter + 1;
console.log(clickcounter);
if (clickcounter === 1) {
buttonclicker.textContent = "Unlock More";
alert(clickcounter);
}
}