【问题标题】:Launch a click function one after another one一个接一个的启动点击功能
【发布时间】:2018-02-11 23:41:49
【问题描述】:

我有不同的功能,例如:

  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函数。

这怎么可能?任何帮助/指针都会非常棒!!

谢谢!

【问题讨论】:

    标签: javascript jquery function onclick delay


    【解决方案1】:

    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
    

    【讨论】:

    • 那太好了,谢谢。如果我想在 hidepanel 功能完成后触发一个新功能点击 body (知道我之前已经点击过一次 body 来触发第一个功能?)
    • 你想循环动画吗?
    • 不是 sur 是否循环,但 id 就像第一次点击 body 时触发功能显示面板。当shopnale完成时。启动函数 hidepanel (适合您的 wnaser)。然后,ont hidepanel 功能已完成,如果我再次单击主体,以触发新功能。一旦这个功能完成,再次点击身体,触发另一个功能,等等。非常感谢您的宝贵时间!
    • 哈好吧...那么基于点击序列的不同操作。
    • 没错,是的。你有什么建议吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    相关资源
    最近更新 更多