Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 设置间隔不起作用_Javascript_Html_Setinterval - Fatal编程技术网

Javascript 设置间隔不起作用

Javascript 设置间隔不起作用,javascript,html,setinterval,Javascript,Html,Setinterval,功能检查价格(可承受){ var z=document.getElementById('man_cost').innerHTML; var a=document.getElementById('mouse_cost').innerHTML; var b=document.getElementById('farm_cost').innerHTML; var c=document.getElementById(“工厂成本”).innerHTML; a=parseInt(a); b=parseInt(

功能检查价格(可承受){
var z=document.getElementById('man_cost').innerHTML;
var a=document.getElementById('mouse_cost').innerHTML;
var b=document.getElementById('farm_cost').innerHTML;
var c=document.getElementById(“工厂成本”).innerHTML;
a=parseInt(a);
b=parseInt(b);
c=parseInt(c);
z=parseInt(z);
如果(负担得起=‘不能’){
如果(金额=z){
document.getElementById('upClick').style.opacity='1';
};
如果(金额>=a){
document.getElementById('upMouse').style.opacity='1';
};
如果(金额>=b){
document.getElementById('upFarm').style.opacity='1';
};
如果(金额>=c){
document.getElementById('upFactory').style.opacity='1';
};
};
返回;
};

设置间隔(支票价格('can'),1000)您需要将其编写为:

setInterval(function(){checkPrice('can')},1000);

这是因为第一个参数采用
函数
,具有
函数名(..)
将给出返回值,而不是函数本身。注意:如果函数没有参数,则可将其写入:
setInterval(checkPrice,1000)
您的var金额如果(
未定义它,这可能是它不起作用的原因。

如果要在执行过程中“动态”传递值,请尝试使用
绑定()
方法

function checkPrice(){
    var afford = this.option;

    var z = document.getElementById('man_cost').innerHTML;
    var a = document.getElementById('mouse_cost').innerHTML;
    var b = document.getElementById('farm_cost').innerHTML;
    var c = document.getElementById('factory_cost').innerHTML;
    a = parseInt(a);
    b = parseInt(b);
    c = parseInt(c);
    z = parseInt(z);
    if(afford == 'cannot'){
        if(amount < z){
            document.getElementById('upClick').style.opacity = '.5';
        };
        if(amount < a){
            document.getElementById('upMouse').style.opacity = '.5';
        };
        if(amount < b){
            document.getElementById('upFarm').style.opacity = '.5';
        };
        if(amount < c){
            document.getElementById('upFactory').style.opacity = '.5';
        };
    }else if(afford == 'can'){
        if(amount >= z){
            document.getElementById('upClick').style.opacity = '1';
        };
        if(amount >= a){
            document.getElementById('upMouse').style.opacity = '1';
        };
        if(amount >= b){
            document.getElementById('upFarm').style.opacity = '1';
        };
        if(amount >= c){
            document.getElementById('upFactory').style.opacity = '1';
        };
    };
    return;
};

setInterval(checkPrice.bind({option: 'afford'}),1000);
函数checkPrice(){
var=this.option;
var z=document.getElementById('man_cost').innerHTML;
var a=document.getElementById('mouse_cost').innerHTML;
var b=document.getElementById('farm_cost').innerHTML;
var c=document.getElementById(“工厂成本”).innerHTML;
a=parseInt(a);
b=parseInt(b);
c=parseInt(c);
z=parseInt(z);
如果(负担得起=‘不能’){
如果(金额=z){
document.getElementById('upClick').style.opacity='1';
};
如果(金额>=a){
document.getElementById('upMouse').style.opacity='1';
};
如果(金额>=b){
document.getElementById('upFarm').style.opacity='1';
};
如果(金额>=c){
document.getElementById('upFactory').style.opacity='1';
};
};
返回;
};
setInterval(checkPrice.bind({option:'expense'}),1000);

您需要传递一个函数,而不是传递函数调用的返回值,除非返回值是函数。您能在@miparnisari@slebetman的网页上发布一个工作示例吗?他们将其定义为全局
var amount=0。您需要将此代码作为一段独立的代码或作为事件的回调执行?它仍然不起作用。你能看看我的网页吗@JamesCrovo那么问题不在于
setInterval()
,你能用小提琴或片段举一个简单的例子吗?我不能在你的网页上编辑代码,我甚至不知道应该发生什么才能让它工作。但是在复制和粘贴的过程中,它并没有真正起作用。