0

我想每 1 小时自动触发以下功能。这实际上是针对货币转换器的,目前我的下面的函数只有在用户在第一个文本框中输入/更改任何值时才会起作用,*我想要的是,下面的函数应该每隔一小时自动调用一次,一小时计时器时间计数应该从什么时候开始文本框中发生的任何更改 *

我的功能如下所示:

  $(document).ready(function(){ 
    $("#from_amount").keyup(function()
        {  
           //my currency converter function goes here

        ----------------------
        ----------------------
4

4 回答 4

2

如果我理解正确:

function currencyConverter(e){
    //do stuff

    if(e && e instanceof jQuery.Event){
        //the function is triggered from the keyup event
    }
}

var handle = setInterval(currencyConverter, 3600000); //one hour in milliseconds

$(function(){
    $("#from_amount").keyup(currencyConverter);
});

如果要停止间隔:

clearInterval(handle);

如果您想在“新时间”启动计时器,您可以这样做(未经测试):

setInterval(function(){

    var now = new Date(),
        newHour = now.getMinutes() === 0 && now.getSeconds === 0;

    if(newHour){

        //trigger 1 hour interval
    }

}, 1000);
于 2013-05-14T08:28:44.270 回答
0

一个小时是很长的时间......但我之前在项目中使用过以下内容:

window.setInterval(check_for_messages, 60000);

该数字是以毫秒为单位的时间长度,因此每 1 分钟运行一次“check_for_messages”函数。check_for_messages 函数是一个 ajax 调用,用于检查数据库并更新网站上的字段。

不过,我不知道使用这种方法 1 小时你会有多少运气。

于 2013-05-14T08:28:37.630 回答
0

然后使用javascript 的setInterval()函数,比如

setInterval(function currencyConverter(){
//your currency conversion code here
},3600000);
于 2013-05-14T08:29:03.257 回答
-1

您可以制作一个计时器以在一小时后触发功能:

setTimeout(function() {
  // Do something after 1 hour
}, 3600000);
于 2013-05-14T09:11:03.363 回答