多个设置超时函数在第一次单击时不执行
Multiple Set Timeout functions not executing on first click
我有几个函数设置了不同的超时,在任何按钮单击时都会调用它们。
出于某种原因,所有这些都不会在第一次点击时执行。
www.bobbysimmonspro.com
另外,作为侧边栏,我很乐意听到任何关于我处理这个问题的方式的意见、简化的插件,以及关于调试这样的东西的过程的一般提示或有用链接。
$(文档).ready(函数(){
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);
});
在您的代码中,您使用 setTimeout 方法设置了事件处理程序。
我想你真正想做的是在用户点击按钮后延迟触发一些动作。
所以也许是这样的:
$("#show-buttons").on('click', '*', function() {
setTimeout(function(){
$("#cube").removeClass("backFace");
$("#cube").animate({opacity: .3});
$("#cube").removeClass( panelClassName );
}, 500);
});
我有几个函数设置了不同的超时,在任何按钮单击时都会调用它们。 出于某种原因,所有这些都不会在第一次点击时执行。
www.bobbysimmonspro.com
另外,作为侧边栏,我很乐意听到任何关于我处理这个问题的方式的意见、简化的插件,以及关于调试这样的东西的过程的一般提示或有用链接。
$(文档).ready(函数(){
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);
});
在您的代码中,您使用 setTimeout 方法设置了事件处理程序。 我想你真正想做的是在用户点击按钮后延迟触发一些动作。 所以也许是这样的:
$("#show-buttons").on('click', '*', function() {
setTimeout(function(){
$("#cube").removeClass("backFace");
$("#cube").animate({opacity: .3});
$("#cube").removeClass( panelClassName );
}, 500);
});