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

Javascript 切换(单击)和绑定事件(在文档上),javascript,jquery,events,click,Javascript,Jquery,Events,Click,我有一个按钮,可以切换下拉列表 然后,它还应该绑定(一次)一个click事件到文档,当单击时,它应该将其向上滑动 我从这个HTML和JS开始。。。 有什么建议可以让这项工作顺利进行吗 HTML 但它仍然是有车的。。当再次单击“继续购物”按钮时,它什么也不做也许这样效果更好。。。它会关闭文档上所有打开的文件,然后单击 编辑:实际测试了这段代码(与前面的答案相比),并且它在我理解需求时起作用 $(".continueShop").toggle( function(){ $(thi

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

我从这个HTML和JS开始。。。 有什么建议可以让这项工作顺利进行吗

HTML
但它仍然是有车的。。当再次单击“继续购物”按钮时,它什么也不做

也许这样效果更好。。。它会关闭文档上所有打开的文件,然后单击

编辑:实际测试了这段代码(与前面的答案相比),并且它在我理解需求时起作用

$(".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();
           });
         });
     }
);

您是否意识到在标签的href属性中使用散列(#)可以刷新页面?不确定这是否是Jquery中的标准做法,但对于使用href=“Javascript:void(0)”或href=“Javascript://”的常规Javascript,它更干净,不会留下不需要的足迹。谢谢,不,这不是我的问题,是的,我将添加一个返回值false。再次感谢当点击continueShop时,当它向上滑动和向下滑动时,我修改了上面的代码。看看它是否适合你。它在我的小测试应用程序中为我工作。我还切换了切换功能,因为当页面加载时,对话框已经打开(至少从您包含的html示例中),所以第一次单击将关闭它而不是打开它。我删除了return false,因为查看jQuery文档中的toggle表示它已经为您提供了preventDefault()。
 $(".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)
});
$(".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();
           });
         });
     }
);