以下是代码:
var timer;
$('#phone_number').click(function(){
$("#phone_dialog").dialog('open');
timer = setTimeout(function(){ phone_close() },10000);
});
$('#phone_dialog').click(function(){
clearTimeout(timer);
phone_close();
});
function phone_close(){
$('#phone_dialog').dialog('close');
};
想法是用户点击phone_number
打开对话框。用户可以单击关闭对话框,但如果他没有这样做,它会在10秒后消失setTimer()
。
然而,实际情况是clearTimeout(timer)
似乎没有停止计时器。用户可以在说2秒后点击关闭。尽管点击功能中存在clearTimeout
,但对话框[重新打开并]在第10秒关闭。
答案 0 :(得分:1)
您可以使用isOpen来检查对话框是否已经关闭
function phone_close(){
if($("#phone_dialog").dialog( "isOpen" )
{
$('#phone_dialog').dialog('close');
}
};
答案 1 :(得分:0)
尝试更改第一个功能:
$('#phone_number').click(function(){
$("#phone_dialog").dialog('open');
clearTimeout(timer);
timer = setTimeout(function(){ phone_close() },10000);
});