0

在我的要求中,用户可以选择多个复选框。但是,在检查每个复选框后,我需要调用 URL 并以 3 秒的时间延迟传递选定的复选框值。此延迟是必需的,以便用户可以选择/取消选择另一个复选框,应取消旧操作并应传递新的选定值。

我知道延迟调用函数,但不知道如何用新函数停止最后一个动作。

setTimeout(function(){ call_me(action) },3000);
function call_me(action)
{
    var url = action
    $(location).attr('href',url);
}
4

1 回答 1

1

您必须使用clearTimeout(),但首先您需要将 setTimeout 的返回值分配给一个变量。

// declared outside of your code that sets the timeout.
var t;


// your code to be run when you want to set the timeout
clearTimeout(t);  // if there is no timeout already assigned to t, this line does nothing.
t = setTimeout(function(){ call_me(action) },3000);
function call_me(action)
{
    var url = action
    $(location).attr('href',url);
}
于 2012-08-06T06:19:11.010 回答