jQuery计时器按时间触发事件x,时间y,时间z可能吗?

时间:2012-09-03 12:40:31

标签: jquery events timer triggers

目前我的webapp收到websocket数据以触发操作。

这会在页面重新加载时中断,因此我想要一个客户端解决方案,我可以触发某个事件。

这个想法有可能吗?

说你有

  • TimeX =来自current_time的10秒应该开始触发X
  • 来自current_time的TimeY = 20秒应该开始触发Y
  • TimeZ =来自current_time的30秒应该开始触发Z

    1. 是否有可能将这些内容存储在html中并在秒数倒数到零时执行一些倒计时触发器?
    2. 如果浏览器在倒计时0-1之间重定向会怎样仍然可以触发事件,比如2/3故障转移时间怎么办?

我有适度的jQuery体验,我很乐意听到一些反馈和想法。提前谢谢

2 个答案:

答案 0 :(得分:2)

您需要使用setInterval()设置对函数的延迟调用。像这样:

var trigger;
function myFunc(t) {
    switch (t) {
        case "Y": 
            callTriggerY();
            trigger = "Z";
            break;
        case "Z": 
            callTriggerZ();
            trigger = "X";
            break;
        default: 
            callTriggerX();
            trigger = "Y";
            break;
}

setInterval(function() { myFunc(trigger); }, 10000); // call on interval
$(window).unload(function() { // call on leaving/reloading page
    myFunc(trigger);
});

答案 1 :(得分:1)

至1.:

是的,这是可能的。

的JavaScript

$(function() {
    $('.timer').each(function(entity) {
        setTimeout(function(eval(entity.attr("data-timer-code"))), parseInt(entity.attr("data-timeout")));
    }
});

HTML

<div class="timer" data-timeout="12000" data-timer-code="asdf()"></div>

我的工作是:我将特殊数据添加到div中,在JavaScript代码中,我将获取所有这些div并为每个div创建计时器。

至2:

我遗憾地不知道如何将其传递出pagecontext并在再次加载页面时重新加载计时器。