Javascript 如何中断超时

Javascript 如何中断超时,javascript,jquery,Javascript,Jquery,我正在尝试实现如下内容: 在我的网站上: 如果在左侧输入中键入一些字母,请单击其中一个字符,然后等待5秒钟,将出现一些图像(通过在flickr上进行搜索生成) 我正在尝试这样做,如果他们点击一个字符,然后在5秒超时完成之前点击另一个字符,它将取消以前的超时并启动新的超时。我正在做一个变通方法,在这个方法中,我吹走了标签中前后的内容,但有一瞬间它在所有不同的图像中闪烁 以下是JS的起点: 我的命令与链接为类似的命令不同,因为清除超时和设置超时的命令位于同一个单击对象中。我看到许多其他按钮都是

我正在尝试实现如下内容:

在我的网站上:

如果在左侧输入中键入一些字母,请单击其中一个字符,然后等待5秒钟,将出现一些图像(通过在flickr上进行搜索生成)

我正在尝试这样做,如果他们点击一个字符,然后在5秒超时完成之前点击另一个字符,它将取消以前的超时并启动新的超时。我正在做一个变通方法,在这个方法中,我吹走了标签中前后的内容,但有一瞬间它在所有不同的图像中闪烁

以下是JS的起点:

我的命令与链接为类似的命令不同,因为清除超时和设置超时的命令位于同一个单击对象中。我看到许多其他按钮都是两个不同的按钮。

使用来清除超时设置

要清除特定的计划超时,需要在变量中存储对该超时的引用。所以,你可以这样做:

var myTimeout = setTimeout(function(){
  alert("Timeout fired");
}, 5000 );

// to interrupt/cancel the timeout
clearTimeout( myTimeout );
var-myTimeout;
//仅设置一次超时
$(“#设置”)。一个(“单击”,函数(e){
e、 预防默认值();
$(this.prop(“disabled”,true);
myTimeout=setTimeout(函数(){
警报(“超时触发”);
}, 4000);//
});//#设置单击()
$(“#清除”)。一(“点击”,功能(e){
e、 预防默认值();
clearTimeout(myTimeout);
$(this.prop(“disabled”,true);
});//#清除单击()

设置超时

清除超时
您必须在事件处理程序外部声明
imageDelay
变量

当您在函数中声明它时,它将在每次调用处理程序时创建一个新的局部变量,因此您的
clearTimeout
不会清除以前创建的超时。

var-myTimeout;
$(“.buttons”)。在(“单击”上,函数(e){
e、 预防默认值();
var curText=$(this.text();
clearTimeout(myTimeout);
myTimeout=setTimeout(函数(){
$(“#横幅”).text(“横幅”+curText);
}, 3000);
});//.按钮单击()
#横幅
{
背景颜色:橙色;
颜色:白色;
高度:50px;
线高:50px;
文本对齐:居中;
}
#按钮容器
{
边缘顶部:20px;
文本对齐:居中;
}
#按钮容器。按钮
{
边框:2倍纯色品红;
颜色:洋红色;
显示:内联块;
高度:22px;
线高:16px;
边际:0.2px;
宽度:22px;
}

1.
2.
3.
4.
5.

请删除指向资源和您自己网站的链接,并将代码张贴在此处,以便清楚地显示您正在面临的问题。是否可以在同一功能内完成此操作,而不是单独的清除超时?在我的例子中,我有10个字符;每一个都将根据单击的图像显示不同的图像。单击角色后会有一个超时,因此,如果有人单击一个角色,并且在5秒钟结束之前,他们决定单击另一个角色,则会停止第一个角色的启动,并在第二个角色上启动超时。您是如何在回答中获得代码片段模块的?如果您有JS和HTML,它会自动执行吗?@shellwe编辑器工具栏中有一个用于代码片段的按钮。对于这样的代码段,您需要使用它。我会根据你的问题更新我的答案。