【问题标题】:jQuery timer to trigger events on time x, time y, time z possible?jQuery计时器可以在时间x,时间y,时间z上触发事件吗?
【发布时间】:2012-08-28 04:55:38
【问题描述】:
目前我的 webapp 接收 websocket 数据来触发动作。
这会在页面重新加载时中断,因此我想要一个能够触发某个事件的客户端解决方案。
这个想法可行吗?
说你有
我有少量的 jQuery 经验,很想听听对此的一些反馈和想法。提前谢谢你
【问题讨论】:
标签:
jquery
events
timer
triggers
【解决方案1】:
您需要使用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);
});
【解决方案2】:
到 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. :
遗憾的是,我不知道如何将其从页面上下文中传递出去并在再次加载页面时重新加载计时器。