我有不同的功能,例如:
function showpanel() {
$( ".top-buttons .col-md-4 a" ).addClass('crop-anim');
$('body').addClass('stepone')
}
function showcolor() {
$( ".top-buttons .col-md-4 a" ).addClass('cropcolor')
}
function hidepanel() {
$( ".top-buttons .col-md-4 a" ).removeClass('crop-anim')
// $( ".top-buttons .col-md-4 a" ).addClass('slideup')
$( ".top-buttons .col-md-4 a img.crop" ).removeClass('hide')
$( ".top-buttons .col-md-4 a .right-align" ).removeClass('before')
$( ".top-buttons .col-md-4 a img.title" ).removeClass('before')
// $( ".top-buttons" ).removeClass('before')
// $( ".top-buttons" ).css('margin-top','0px')
}
我想在点击时触发一个特定的功能,这可以正常工作:
$("#body").click(function() {
showpanel()
});
以上工作完美无缺。
但是如果我想在showpanel函数完成后立即启动函数hidepanel(),那么上面是什么?
我怎样才能做到这一点?
我在上面的场景中尝试了以下内容:
$("#body").click(function() {
showpanel()
hidepanel(2800)
});
喜欢延迟2800毫秒,但没有成功。 。
情景2我试图实现;
在showpanel功能结束时,hidepanel功能会直接触发。然后再次单击body div,它将触发showcolor函数。
这怎么可能呢?任何帮助/指针都会超级!!
感谢你!
答案 0 :(得分:0)
setTimeout()
肯定是你所追求的。
$("#body").click(function() {
showpanel();
setTimeout(function(){
hidepanel();
},2800);
});
修改强>
要根据"点击序列"触发不同的操作,您可以使用switch()
var clickCounter = 0;
$("#body").click(function() {
// Increment clickCounter
clickCounter++;
switch (clickCounter){
// First click
case 1:
showpanel();
setTimeout(function(){
hidepanel(2800)
},2800);
break;
// Second click
case 2:
FirstOtherAction();
break;
// Third click
case 3:
secondOtherAction();
break;
// All subsequent clicks
default:
allOtherAction();
break;
} // End switch
}); // End click handler