代码之家  ›  专栏  ›  技术社区  ›  vishnu

带延迟调整的onclick toggle类

  •  0
  • vishnu  · 技术社区  · 6 年前

    toggleClass setTimeout 函数,目前它是工作的基础上编写的脚本,但我不需要延迟第一次点击。 快速隐藏div并延迟显示

    $(document).ready(function() {
      $(".button").click(function() {
        window.setTimeout(function() {
          $(".search").toggleClass("hide");
        }, 250);
      });
    });
    .hide {
      display: none;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    
    <button class="button" type="button">nav</button>
    <div class="search"><input type="text" placeholder="Search"></div>

    JSFiddle

    3 回复  |  直到 6 年前
        1
  •  5
  •   niclas_4    6 年前

    从未使用过jquery,但这应该可以工作,不确定它是否是最干净的解决方案。

        $(document).ready(function() {
          $(".button").click(function() {
            if($(".search").hasClass("hide"))
            {
               window.setTimeout(function() {
                   $(".search").toggleClass("hide");
               }, 250);
            }
       else $(".search").toggleClass("hide");
          });
        });
    .hide {
      display: none;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    
    <button class="button" type="button">nav</button>
    <div class="search"><input type="text" placeholder="Search"></div>
        2
  •  1
  •   Ali Sheikhpour    6 年前

    检查元素是否可见或隐藏,然后决定要执行的操作:

    $(document).ready(function() {
      $(".button").click(function() {
         if ($(".search").is(":visible")){
             $(".search").addClass("hide");
          } 
        else{
             window.setTimeout(function() {
             $(".search").toggleClass("hide");
             }, 250);
         }
      });
    });
    .hide {
      display: none;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    
    <button class="button" type="button">nav</button>
    <div class="search"><input type="text" placeholder="Search"></div>
        3
  •  1
  •   Just code    6 年前

    firstClick ,最初为true,然后为所有单击 false

    $(document).ready(function() {
    var firstClick =true;
      $(".button").click(function() {
        window.setTimeout(function() {
        firstClick=false;
          $(".search").toggleClass("hide");
        }, firstClick?0:250);
      });
    });
    .hide {
      display: none;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    
    <button class="button" type="button">nav</button>
    <div class="search"><input type="text" placeholder="Search"></div>