【发布时间】:2015-01-02 07:38:49
【问题描述】:
在我的项目中,我想延迟事件——特别是上升或下降“楼层”或显示楼层号——直到电梯的所有按钮都被按下。
例如,如果我按 2、4、1、3,数字应按该顺序显示,向上或向下指示符应适当突出显示。
$(document).ready(function() {
var $buttons = $('.buttons'),
$floorAnimate = $('.floor-animate'),
$floorPanel = $('floor-panel');
function pressButtons()
{
$('.floor-number').css('display', 'none');
$buttons.click(function()
{
var $floorNumber = $(this).text(),
floorOn = $('floor-number').text();
$(this).addClass('pressed');
$('.floor-number').css('display', 'block').append($floorNumber).animate({top: '-200px'}, 1500);
$('#up-indicator').addClass('up');
});
}
pressButtons();
});
【问题讨论】:
-
我很好奇你为什么要延迟事件。每次有人按下按钮时,您都应该检查“电梯的所有按钮是否都被按下”。一旦它们出现,您就可以触发最终事件(调用函数,触发点击事件)。我错过了什么吗?
-
@HarryPehkonen 你是对的;这是XY Problem
-
@Harry 我不确定事件是否应该延迟。这就是我能想到的如何解决这个问题。但是不需要按下所有按钮。例如,用户可以按 2、4、1。或者只有 1 个。
-
嗯,你需要使用一个数组来排队你要去的楼层,并据此跟踪电梯的行程。请重新表述你的问题,因为它目前非常模糊
标签: javascript jquery delay jquery-events