2011-06-09 31 views
0

我使用jQuery UI的对话,像这样按按钮:执行功能,如果用户不与x秒

var $dialog; 
$(document).ready(function() { 
    $dialog = $('<div></div>') 
     .html('Are you awake?<br/><br/><button>Yes</button>') 
     .dialog({ 
      autoOpen: false, 
      title: 'Inactivity Monitor' 
     }); 

}); 

这个对话框显示,每20分钟,用户必须点击“是”继续。我需要在这个背后运行一些东西,所以如果用户在10分钟内没有点击“是”,就会执行另一个功能(发送邮件到总公司)。

我该怎么做?

感谢所有帮助

回答

1

你可以使用一个setTimeout();如果达到,将执行该功能,你可以将其设置为可变的,所以如果被点击的按钮,你可以关闭计时器。 我已经建立了一个对的jsfiddle告诉你如何:http://jsfiddle.net/SrwTP/

的JavaScript:

var buttonTimer = setTimeout("alert('Oh noes! you didnt click the button :(');", 5000); 
document.getElementById("timerButton").onclick = function(){ clearTimeout(buttonTimer); }; 

HTML:

<button id="timerButton">Click me or an alert will popup in 5 seconds!</button> 
+0

感谢DVIR,这就是伟大的:)我知道了现在的工作,这样一个对话框弹出每20分钟,如果用户犯规10分钟后点击“是”按钮,它发送信息了。 – 2011-06-09 11:46:12

0

您可以使用setTimeout来完成这件事。有一个标志变量来标识用户操作并在发送电子邮件的间隔函数中对其进行验证。

例如:

以下示例将显示每3秒钟的警报框。

<html> 
<head> 
<script type="text/javascript"> 
function timeMsg() 
{ 
var t=setTimeout("alertMsg()",3000); 
} 
function alertMsg() 
{ 
alert("Hello"); 
} 
</script> 
</head> 

<body> 
<form> 
<input type="button" value="Display alert box in 3 seconds" 
onclick="timeMsg()" /> 
</form> 
</body> 
</html>