2017-08-18 22 views
0

私は、なぜ私のif文が決して誘発しないのかを把握するために努力してきました。どんな助けでも大歓迎です!JavaScript 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があれば(clickcounter => 1)を使用して試み、また(clickcounter> 0)場合に試みたが、これのどれも働いていないに等しいか又は最初にI 1上であろう。私は間違って何をしていますか? はここで全部のcodepenされています、unblur()はそうclickcounter0ままあなたのコード例に基づいてhttps://codepen.io/sage379/pen/JyppZv

+1

をあなたが0に 'clickcounter'を設定し、それはそれは1ではありません1に等しいだかどうかを確認、それは0です0 – David

+0

「ぼかし」を呼び出すものは? – Amy

+0

unblurがonClick関数によって呼び出されたとき、私は多くのコードを残しました。間違いです。 https://codepen.io/sage379/pen/JyppZvは全部のコードコードです – user3161849

答えて

1

と呼ばれることは決してありません。

+0

と 'unblur'が呼び出されたとしても、条件式はすでに' clickcounter'の状態をテストしていますので、遅すぎます。 – Octopus

+0

@Octopusは、コードが質問に現れるように書かれていることを前提としています。時には、ユーザーがいくつかの行をここにコピーし、いくつかの行をコピーして、どれだけ文脈が捨てているのかを意識することなく、質問にすべてをまとめることがあります。これは私が質問のコードをどのように解釈したかです。 – Amy

+0

私が指定したはずの、unblur()が呼び出されました..そして、私はconsole.logにclickcounterの値を設定したので、変数が変更されていることを知っています..ここにコードページがあります:https://codepen.io/sage379/pen/JyppZv – user3161849

0

問題がある場合は、clickcounterを増やしても、それが変更されたかどうかは決して確認できません。このチェックはスクリプト内で一度だけ実行され、clickcounter = 0の直後に実行されます。

ここでは、そのチェックを新しい機能checkClickCounter()にラップした例を示します。この関数は、ボタンクリックによって呼び出されるたびにunblur()で呼び出されます。 if文を>=に変更しましたが、1つ増えているので、クリック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); 
    } 
} 
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"; 

      } 
     } 
0

unblurの内側にあなたの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); 
} 
} 
関連する問題