javascript - 按钮应该仅在两个事件后可用

标签 javascript jquery html css

我有几个侧面板,然后是一个按钮,该按钮只有在有人打开多个侧面板后才可用。 您可以在 fiddle 中看到我有一个“点击我”按钮,该按钮当前默认可用。但我希望它仅在有人多次打开侧面板时才可用。 此外,该按钮应来自上方,例如侧面板上的关闭按钮。

谁能帮忙谢谢

JSFiddle

HTML:

<i class="glyphicon glyphicon-plus-sign cd-btn-a abc"></i>
<div class="container">
  <i class="glyphicon glyphicon-plus-sign cd-btn"></i>
</div>

<div class="place">
<i class="glyphicon glyphicon-plus-sign cd-btn-b abc"></i>
</div>
<div class="cd-panel from-right"> 
            <header class="cd-panel-header">
                <a href="#0" class="cd-panel-close"></a>
            </header>
            <div class="cd-panel-container">
        Content
  </div>
</div>
<div class="cd-panel-a from-right"> 
            <header class="cd-panel-header">
                <a href="#0" class="cd-panel-close"></a>
            </header>
            <div class="cd-panel-container color">
        Content
  </div>
</div>
<div class="cd-panel-b from-right"> 
            <header class="cd-panel-header">
                <a href="#0" class="cd-panel-close"></a>
            </header>
            <div class="cd-panel-container color-b">
        Content
  </div>
</div>
<div>
<button>
click me
</button>
</button>
</div>
</div>

JQuery:

$(".glyphicon-minus-sign, .glyphicon-plus-sign").click(function(){
    $(this).toggleClass("glyphicon-minus-sign glyphicon-plus-sign");
});


jQuery(function($){
    //open the lateral panel
    $('.cd-btn').on('click', function(event){
        event.preventDefault();
        $('.cd-panel').toggleClass('is-visible');
    // CHECKING ICON OF .cd-btn-a
    if($('.cd-btn-a').hasClass('glyphicon-minus-sign')) {
       $('.cd-btn-a').toggleClass('glyphicon-minus-sign glyphicon-plus-sign');
       $('.cd-panel-a').removeClass('is-visible');
     }
    });
    //close the lateral panel
    $('.cd-panel').on('click', function(event){
        if( $(event.target).is('.cd-panel') || $(event.target).is('.cd-panel-close') ) { 
            $('.cd-panel').removeClass('is-visible');
            $('.cd-btn').toggleClass("glyphicon-minus-sign glyphicon-plus-sign");
            event.preventDefault();
        }
    });
});

jQuery(function($){
    //open the lateral panel
    $('.cd-btn-a').on('click', function(event){
        event.preventDefault();
        $('.cd-panel-a').toggleClass('is-visible');
    // CHECKING ICON OF .cd-btn
    if($('.cd-btn').hasClass('glyphicon-minus-sign')) {
       $('.cd-btn').toggleClass('glyphicon-minus-sign glyphicon-plus-sign');
       $('.cd-panel').removeClass('is-visible');
     }
    });
    //close the lateral panel
    $('.cd-panel-a').on('click', function(event){
        if( $(event.target).is('.cd-panel-a') || $(event.target).is('.cd-panel-close') ) { 
            $('.cd-panel-a').removeClass('is-visible');
            $('.cd-btn-a').toggleClass("glyphicon-minus-sign glyphicon-plus-sign");
            event.preventDefault();
        }
    });
});

jQuery(function($){
    //open the lateral panel
    $('.cd-btn-b').on('click', function(event){
        event.preventDefault();
        $('.cd-panel-b').toggleClass('is-visible');
    // CHECKING ICON OF .cd-btn
    if($('.cd-btn, .cd-btn-a').hasClass('glyphicon-minus-sign')) {
       $('.cd-btn, .cd-btn-a').toggleClass('glyphicon-minus-sign glyphicon-plus-sign');
       $('.cd-panel').removeClass('is-visible');
     }
    });
    //close the lateral panel
    $('.cd-panel-b').on('click', function(event){
        if( $(event.target).is('.cd-panel-a') || $(event.target).is('.cd-panel-close') ) { 
            $('.cd-panel-b').removeClass('is-visible');
            $('.cd-btn-b').toggleClass("glyphicon-minus-sign glyphicon-plus-sign");
            event.preventDefault();
        }
    });
});

最佳答案

试试这段代码

    <i class="glyphicon glyphicon-plus-sign cd-btn-a abc"></i>
    <div class="container">
      <i class="glyphicon glyphicon-plus-sign cd-btn"></i>
    </div>

    <div class="place">
    <i class="glyphicon glyphicon-plus-sign cd-btn-b abc"></i>
    </div>
    <div class="cd-panel from-right"> 
                <header class="cd-panel-header">
                    <a href="#0" class="cd-panel-close"></a>
                </header>
                <div class="cd-panel-container">
            Content
      </div>
    </div>
    <div class="cd-panel-a from-right"> 
                <header class="cd-panel-header">
                    <a href="#0" class="cd-panel-close"></a>
                </header>
                <div class="cd-panel-container color">
            Content
      </div>
    </div>
    <div class="cd-panel-b from-right"> 
                <header class="cd-panel-header">
                    <a href="#0" class="cd-panel-close"></a>
                </header>
                <div class="cd-panel-container color-b">
            Content
      </div>
    </div>
    <div>
    <button id='clickbtn' style="display:none;">
    click me
    </button>
    </button>
    </div>
    </div>

脚本

        var Counter =0; 
        $(".glyphicon-minus-sign, .glyphicon-plus-sign").click(function(){
            $(this).toggleClass("glyphicon-minus-sign glyphicon-plus-sign");
            Counter++;
        });


        jQuery(function($){
            //open the lateral panel
            $('.cd-btn').on('click', function(event){
          if(Counter>3){
            $("#clickbtn").show();
          }
                event.preventDefault();
                $('.cd-panel').toggleClass('is-visible');
            // CHECKING ICON OF .cd-btn-a
            if($('.cd-btn-a').hasClass('glyphicon-minus-sign')) {
               $('.cd-btn-a').toggleClass('glyphicon-minus-sign glyphicon-plus-sign');
               $('.cd-panel-a').removeClass('is-visible');
             }
            });
            //close the lateral panel
            $('.cd-panel').on('click', function(event){
                if( $(event.target).is('.cd-panel') || $(event.target).is('.cd-panel-close') ) { 
                    $('.cd-panel').removeClass('is-visible');
                    $('.cd-btn').toggleClass("glyphicon-minus-sign glyphicon-plus-sign");
                    event.preventDefault();
                }
            });
        });

        jQuery(function($){
            //open the lateral panel
            $('.cd-btn-a').on('click', function(event){
                event.preventDefault();
                $('.cd-panel-a').toggleClass('is-visible');
            // CHECKING ICON OF .cd-btn
            if($('.cd-btn').hasClass('glyphicon-minus-sign')) {
               $('.cd-btn').toggleClass('glyphicon-minus-sign glyphicon-plus-sign');
               $('.cd-panel').removeClass('is-visible');
             }
            });
            //close the lateral panel
            $('.cd-panel-a').on('click', function(event){
                if( $(event.target).is('.cd-panel-a') || $(event.target).is('.cd-panel-close') ) { 
                    $('.cd-panel-a').removeClass('is-visible');
                    $('.cd-btn-a').toggleClass("glyphicon-minus-sign glyphicon-plus-sign");
                    event.preventDefault();
                }
            });
        });

        jQuery(function($){
            //open the lateral panel
            $('.cd-btn-b').on('click', function(event){
                event.preventDefault();
                $('.cd-panel-b').toggleClass('is-visible');
            // CHECKING ICON OF .cd-btn
            if($('.cd-btn, .cd-btn-a').hasClass('glyphicon-minus-sign')) {
               $('.cd-btn, .cd-btn-a').toggleClass('glyphicon-minus-sign glyphicon-plus-sign');
               $('.cd-panel').removeClass('is-visible');
             }
            });
            //close the lateral panel
            $('.cd-panel-b').on('click', function(event){
                if( $(event.target).is('.cd-panel-a') || $(event.target).is('.cd-panel-close') ) { 
                    $('.cd-panel-b').removeClass('is-visible');
                    $('.cd-btn-b').toggleClass("glyphicon-minus-sign glyphicon-plus-sign");
                    event.preventDefault();
                }
            });
        });

fiddle link

关于javascript - 按钮应该仅在两个事件后可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41148051/

相关文章:

javascript - nyroModal 根据页面大小而不是浏览器大小调整大小

jquery - HTML5 中的 3D 图像转换

javascript - 为什么 ISO 日期转换在 javascript 环境中不一致以及如何修复?

javascript - 使用需要 header 并提供内容的 REST 请求下载文件

javascript - 服务器响应一个浏览器的 GET 请求,状态为 304,另一浏览器的响应为 200

jQuery datepicker 自定义规则请帮忙

javascript - 为什么输入类型=文件的变化没有被识别为 `form.serialzie()`

php - 如何集成 PHP 和 HTML 以使密码不可见?

c# - 同时执行 Javascript 和 Controller ActionResult

html - 如何在同一行显示包含多行的两个div