检查条件是否为真的更长时间 - 不仅在特定时间

时间:2017-12-14 16:51:36

标签: jquery

我无法真正找到这个问题的答案。如果已经被问过,我很抱歉。

jQuery中是否有一种方法可以检查变量或条件是否在一段时间内为真,例如秒,五秒或类似的时间段,并根据变量为真的时间唤起函数。 类似于function1,如果<1秒,则function2如果&lt; 5秒,则函数3如果&lt; 5秒。 我可以想象一个解决方案的唯一方法是创建一个循环并在变量为false时停止它。

编辑:对不起,我问得这么不清楚。问题是如何用jQuery测量一个变量为true或false的时间。

1 个答案:

答案 0 :(得分:1)

如果您将问题改为:

  

检测变量的设置时间

然后您可以使用new Date().getTime()来获取值更改时的滴答数,然后使用var t = null; function start() { t = new Date().getTime(); } function stop() { t = (new Date().getTime()) - t; } start(); setTimeout(function() { stop(); }, 1250); 来更改返回值(Date()上的其他函数可用,例如获取秒数或毫秒数)。 / p>

例如:

t

在条件发生变化时设置/重置/检查null

您可以通过检查var t = null; function action() { if (t == null) { t = new Date().getTime(); } else { t = (new Date().getTime()) - t; // do something onValueChange(t); } } action(); setTimeout(function() { action(); }, 1250); 来检查它是否已经开始,将上述两个开始/停止结合起来,例如:

mousedown

例如,在javascript / jquery中,使用HTML按钮,您可以记录mouseup并在var t = null; $("#btn") .on("mousedown", function() { t = new Date().getTime(); // current ticks }).on("mouseup", function() { t = new Date().getTime() - t; // delta ticks (could use seconds or milliseconds) // Do something with t $("#result").text("You pressed for " + t + " ticks."); });时进行比较以查看按下按钮的时间,例如:

&#13;
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id='btn'>press me</button>
<div id='result'></div>
&#13;
    $("#txtAppt_Date").kendoDateTimePicker({
                    format: 'ddd M/d/yyyy h:mm tt',
                    min: new Date(2017, 0, 1, 9, 0, 0)
     });
&#13;
&#13;
&#13;