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

切换(单击)和绑定事件(在文档上)

  •  0
  • adardesign  · 技术社区  · 15 年前

    我有一个按钮 <a> 应该会切换下拉列表 然后它还应该(一次)将单击事件绑定到文档,当单击时,它应该将其向上滑动。

    我从这个html和js开始… 你有什么建议吗?

    HTML

          <a class="a" href="#">continue shopping</a>
          <div class="b">
            <a href="#">continue 1</a>
            <a href="#">continue 2</a>
            <a href="#">continue 3</a>
            <a href="#">continue 4</a>
          </div>
    

    JS

     $(".a").toggle(function(event){
       buttonEvent = $(event.target)
        $(this).addClass("open").next(".a").slideDown(500);
    
        $(document).one("click",function(e){
        if(!$(e.target).is(".a") && !buttonEvent.hasClass("b")){
            $(".b").slideUp(500)
         }  
      })
    
     },
     function(){
      $(this).removeClass("open").next(".continueShopCntnr").slideUp(500)
    });
    

    但还是有车…当再次点击继续购物时,它什么也不做

    1 回复  |  直到 15 年前
        1
  •  1
  •   Lindsay    15 年前

    也许这样更好…它关闭文档上任何打开的单击。

    编辑:实际测试了这段代码(与前面的答案相比),它在我理解需求的情况下工作。

    $(".continueShop").toggle(
        function(){
          $(this).removeClass("open").next(".continueShopCntnr").slideUp(500)
        },
        function(){
            $(this).addClass("open").next(".continueShopCntnr").slideDown(500);
    
            $(document).one("click",function() {
               $(".continueShop.open").each(function() { 
                   $(this).click();
               });
             });
         }
    );