我有一个包含多个选项的选择。每个选项都来自一个数据库,其中我还有上次使用该选项的时间戳。如果在过去 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);
}
怎么说:当页面显示时,如果 diff BECOMES > 30 then .attr('disabled',false)?
最佳答案
只需在给定时间后运行函数即可改变状态。
item = $(this);
if(diff < 30){
item.attr('disabled', true);
setTimeout(function() {
item.attr('disabled', false);
}, (30-diff)*1000);
}
关于javascript - 当条件为真时保持选项禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29744889/