2017-06-03 11 views
0

これは残念ながら動作していないコードです。JS 1.5秒ごとに値を追加する必要があります

これはhtml(600)から値をとり、それを(var f = 600/20)に分割しています。 onclickボタン(これはすでにonclick機能を持っています)を開始します。

function enemy() { 
 
    var iFrequency = 2500; 
 
    var myInterval = 0; 
 
    var e = document.getElementById('stre').innerHTML; 
 
    var f = e/20; 
 

 
    function startLoop() { 
 
    if (myInterval > 0) clearInterval(myInterval); // stop 
 
    myInterval = setInterval("doSomething()", iFrequency); 
 
    } 
 

 
    function doSomething() { 
 
    var label = document.getElementById('wallvalue'); 
 
    label.innerHTML = parseInt(label.innerHTML) + f; 
 
    document.getElementById('wallvalue').style.color = 'red'; 
 
    document.getElementById('resultr').innerHTML = f; 
 
    document.getElementById('resultr').style.color = 'red'; 
 
    document.getElementById('resultrc').innerHTML = f; 
 
    document.getElementById('resultrc').style.color = 'red'; 
 
    }
<BUTTON class="doit" onclick="damagec(); iFrequency+=1000; startLoop(); return false;"><b>FIGHT</b></BUTTON>

+0

スニペットを作成しました。 'setInterval(doSomething、iFrequency); – mplungjan

+4

' startLoop'がグローバルスコープで定義されていないので、インラインイベントハンドラはその関数を呼び出せません。それは動作しない少なくとも1つのことです。 [mcve]を入力してください。 –

+1

「damagecが定義されていません」 – prasanth

答えて

0

youveはいくつかの継承を実行しようとしましたが、あなたのコードは、どのような方法で動作していないように見えます。私はそれを成し遂げるために管理

function enemy(name) { // a constructor for our enemy 
 
    this.name=name; 
 
    this.iFrequency = 2500; 
 
    this.myInterval = false; 
 
    this.el=document.createElement("div"); 
 
    document.body.appendChild(this.el); 
 
    this.f = 1; 
 
} 
 

 
enemy.prototype={ //functions for all enemys 
 
    startLoop:function() { 
 
    if (this.myInterval) clearInterval(this.myInterval); // stop 
 
    this.myInterval = setInterval(this.doSomething.bind(this), this.iFrequency); 
 
    }, 
 
    doSomething:function() { 
 
    this.el.innerHTML = this.name+":"+(++this.f); 
 
    this.el.style.color = 'red'; 
 
    } 
 
}; 
 

 
var Monster=new enemy("Monster");//create a new Enemey 
 
var button=document.createElement("button"); 
 
button.textContent="Start Monster"; 
 
document.body.appendChild(button); 
 

 
button.onclick=Monster.startLoop.bind(Monster);

0

:あなたはこれを行うことがあります。回答ありがとうございました!

function enemy(){ 
    var e=600; 
    var f=600/20; 
    document.getElementById('resultr').innerHTML = f; 
    document.getElementById('resultr').style.color = 'red'; 
    document.getElementById('resultrc').innerHTML = f; 
    document.getElementById('resultrc').style.color = 'red'; 

    var intervalID = window.setInterval(myCallback, 3000); 

    function myCallback() { 
    var label = document.getElementById('wallvalue'); 
    label.innerHTML = parseInt(label.innerHTML) + f; 
    document.getElementById('wallvalue').style.color = 'red'; 
    } 
} 
関連する問題