2015-10-10 25 views
0

我有几个功能设置为不同的超时,任何按钮点击调用。 出于某种原因,它们都不会在第一次点击时执行。多设置超时功能没有在第一次点击执行

www.bobbysimmonspro.com

此外,作为一个工具,我会很乐意听到的方式任何意见我正在接近这一点,插件以简化和一般提示或调试过程中有用的链接像这样的东西。

$(文件)。就绪(函数(){

var panelClassName = 'show-front'; 

$("#cube").toggleClass("backFace"); 


setTimeout(function(){ 
    $("#show-buttons").on('click', '*', function() { 
     $("#cube").removeClass("backFace"); 
     $("#cube").animate({opacity: .3}); 
     $("#cube").removeClass(panelClassName); 
    }); 
}, 500); 

setTimeout(function(){ 
    $("#show-buttons").on('click', '*', function() { 
      panelClassName = event.target.className; 
     });  
}, 1000); 


setTimeout(function(){ 
    $("#show-buttons").on('click', '*', function() {   
     $("#cube").addClass(panelClassName); 
     $("#cube").animate({opacity: 1}); 
    });  
}, 3000); 

setTimeout(function(){ 
    $("#show-buttons").on('click', '*', function() { 
     $("#cube").addClass("backFace"); 
    }); 
}, 3500); 


}); 
+1

这只是都错了,确实没有理由把事件处理程序的内部超时,这些超时无关与点击,他们只是延迟添加事件处理程序?还有,删除对'*'进行门控毫无意义? – adeneo

回答

2

在你的代码设置与setTimeout的方法事件处理程序。 我猜你真正想要做的是触发一些动作用户后的延迟点击一个按钮 因此,也许是这样的:

$("#show-buttons").on('click', '*', function() { 
    setTimeout(function(){ 
     $("#cube").removeClass("backFace"); 
     $("#cube").animate({opacity: .3}); 
     $("#cube").removeClass(panelClassName); 
    }, 500); 
}); 
+0

谢谢,Adeneo的评论让我回到了正确的轨道。现在我有一个不同的问题,但我相信你已经回答了这个问题。 – RedBeardPro

相关问题