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()
,你能用小提琴或片段举一个简单的例子吗?我不能在你的网页上编辑代码,我甚至不知道应该发生什么才能让它工作。但是在复制和粘贴的过程中,它并没有真正起作用。