Javascript 条件为真时保持选项禁用

Javascript 条件为真时保持选项禁用,javascript,jquery,Javascript,Jquery,我有一个选择,有几个选项。每个选项都来自一个db,在这里我还有一个上次使用该选项的时间戳。如果该选项在过去30秒内被使用,我希望将其禁用。我不知道如何处理这种情况:我打开页面,一个选项被禁用:例如,该选项在15秒前就已被使用。15秒后,应再次启用该选项。 到目前为止,我的代码只处理此案例的第一部分: var ds = "<?php echo $myPage['lastmsg']; ?>"; var dateArray = ds.split(" "); // split the d

我有一个选择,有几个选项。每个选项都来自一个db,在这里我还有一个上次使用该选项的时间戳。如果该选项在过去30秒内被使用,我希望将其禁用。我不知道如何处理这种情况:我打开页面,一个选项被禁用:例如,该选项在15秒前就已被使用。15秒后,应再次启用该选项。 到目前为止,我的代码只处理此案例的第一部分:

var ds = "<?php echo $myPage['lastmsg']; ?>"; 
var dateArray = ds.split(" ");  // split the date and time 
var ds1 = dateArray[0].split("-"); // split each parts in date
var ds2 = dateArray[1].split(":"); // split each parts in time
var newDate = new Date(ds1[0], (+ds1[1] - 1), ds1[2], ds2[0], ds2[1], ds2[2]).getTime(); //parse it
var currentDate = new Date().getTime();
var diff = currentDate - newDate;
if(diff < 30){
    $(this).attr('disabled',true);
}
var-ds=”“;
var dateArray=ds.split(“”;//拆分日期和时间
var ds1=dateArray[0]。拆分(“-”);//按日期分割每个部分
var ds2=dateArray[1]。拆分(“:”);//把每个部分及时分开
var newDate=新日期(ds1[0],(+ds1[1]-1),ds1[2],ds2[0],ds2[1],ds2[2]).getTime()//解析它
var currentDate=new Date().getTime();
var diff=当前日期-新日期;
如果(差值<30){
$(this.attr('disabled',true);
}

如何说:当显示页面时,如果差异大于30,那么.attr('disabled',false)?

我想这就是您要寻找的:

if(diff < 30){
    $(this).attr('disabled',true);
}
else{
    $(this).removeAttr('disabled');
}
if(差异<30){
$(this.attr('disabled',true);
}
否则{
$(this.removeAttr('disabled');
}

现在,如果未禁用,它将始终处于启用状态。

只需在给定时间后运行该函数,该函数将改变状态

item = $(this);

if(diff < 30){
    item.attr('disabled', true);

    setTimeout(function() {
     item.attr('disabled', false);
    }, (30-diff)*1000);
}
item=$(此项);
如果(差值<30){
item.attr('disabled',true);
setTimeout(函数(){
item.attr('disabled',false);
},(30差异)*1000);
}

不,这显然行不通。if语句只在页面加载时计算,顺便说一句,else语句是不必要的,因为默认情况下选项是启用的。我需要它,而网页已经加载了意义,没有完全理解的问题。简单和干净。你只是说:“你10秒前就使用了这个选项。所以等20秒,然后再启用它!!谢谢!!!