Javascript 多次调用setTimeout函数时出现问题
当函数被多次调用时,我有一个setTimeout问题 当用户单击.icon时,将调用一个函数,该函数将在设置为第三个数组参数的持续时间内隐藏div,然后显示它 除非一个人先点击一个项目,然后再点击另一个项目,否则它可以正常工作。在这种情况下,两个项目的持续时间都设置为上次单击的持续时间。 我试图生成一个随机变量,而不是var cooldowndata,但没有成功 数据id具有以下内容:名称、价格和超时持续时间Javascript 多次调用setTimeout函数时出现问题,javascript,jquery,settimeout,Javascript,Jquery,Settimeout,当函数被多次调用时,我有一个setTimeout问题 当用户单击.icon时,将调用一个函数,该函数将在设置为第三个数组参数的持续时间内隐藏div,然后显示它 除非一个人先点击一个项目,然后再点击另一个项目,否则它可以正常工作。在这种情况下,两个项目的持续时间都设置为上次单击的持续时间。 我试图生成一个随机变量,而不是var cooldowndata,但没有成功 数据id具有以下内容:名称、价格和超时持续时间 <div class="actions"> <div cla
<div class="actions">
<div class="actionholder">
<div class="box"><div class="subbox"></div><div class="icon" data-id="ItemA|33|15000">ItemA 15s.</div></div>
<div class="box"><div class="subbox"></div><div class="icon" data-id="ItemB|21|6000">ItemB 6s.</div></div>
<div class="box"><div class="subbox"></div><div class="icon" data-id="ItemC|45|28000">ItemC 28s.</div></div>
</div>
</div>
$(".icon").bind("click",function() {
var data = $(this).data("id");
cooldown(data);
});
function cooldown(data)
{
var cooldowndata = data.split('|');
actiontohide = $("div").find("[data-id='" + data + "']");
actiontohide.hide();
setTimeout(function() { actiontohide.show(); }, cooldowndata[2]);
}
例如,您可以从项目B开始,然后项目C、C将在6秒后显示,而不是28秒:
如果有人能指出我做错了什么,我将不胜感激。
谢谢。actiontohide是一个全局选项,因此每次单击都会覆盖它
actiontohide = $("div").find("[data-id='" + data + "']");
应该是
var actiontohide = $("div").find("[data-id='" + data + "']");
至少你应该有一把工作小提琴。你想隐藏哪个部门?非常感谢昆汀。