简体   繁体   English

jQuery元素显示并在按钮单击时向下滑动

[英]jQuery element show and slide down on button click

So Im learning jQuery / JavaScript. 所以我正在学习jQuery / JavaScript。 I believe the title says it all trying to get a div section which is set to display: none show whilst slowly sliding down on button click 我相信标题说这一切都试图得到一个设置为display: none的div部分display: none显示,同时在按钮点击上慢慢滑下

As per jQuery manual, W3schools and other few places where I've tried to read up, this is what I came up with. 根据jQuery手册,W3schools以及我尝试阅读的其他几个地方,这就是我想出来的。 Needless to say it doesn't look pretty. 不用说它看起来不漂亮。

My logic here is that the code should get executed on button click hench I put the onclick event handler to the button element. 我的逻辑是代码应该在按钮点击hench上执行我把onclick事件处理程序放到button元素。

 function showPackages(){ $('#submitBtn').on('click', function(){ $('#showPackages').slideDown('slow', function(){ $('#showPackages').css('display', 'inline'); }); }); } 
 <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> <div class="panel-group" id="dispPackages" style="display: none"> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href="#collapse1"> Collapsible Group 1</a> </h4> </div> <div id="collapse1" class="panel-collapse collapse in"> <div class="panel-body"> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. </div> </div> </div> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href="#collapse2"> Collapsible Group 2</a> </h4> </div> <div id="collapse2" class="panel-collapse collapse"> <div class="panel-body"> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. </div> </div> </div> </div> 

Any help / advice appreciated. 任何帮助/建议表示赞赏。

First of all, you have to bind event handlers separated. 首先,您必须bind 事件处理程序。

function showPackages(){
    $('#submitBtn').on('click', function(){
      $('#showPackages').slideDown('slow', function(){
        $('#showPackages').css('display', 'inline');
      });
    });
}

As you writed every time when you click the input it attached a click event handler to your submitBtn . 当您每次单击输入时写入时,它会将click事件处理程序附加到submitBtn

Change it to this: 把它改成这个:

function showPackages(){

}
$('#submitBtn').on('click', function(){

});
$('#showPackages').slideDown('slow', function(){
    $('#showPackages').css('display', 'inline');
});

But, if you want to trigger the event automatically, use .trigger() method. 但是,如果要自动触发事件,请使用.trigger()方法。

function showPackages(){
    $('#submitBtn').trigger('click');
    $('#showPackages').trigger('slideDown');
}

Try this 试试这个

show and hide can be done with different effects 显示和隐藏可以用不同的效果完成

  • hide() and show() hide()和show()
  • fadeIn(), fadeOut() and fadeToggle() fadeIn(),fadeOut()和fadeToggle()
  • slideUp(), slideDown() and slideToggle() slideUp(),slideDown()和slideToggle()

*In your case you want slide effect so just use slideToggle() *在你的情况下你想要幻灯片效果所以只需使用slideToggle()

 $('#submitBtn').on('click', function(){ //$('#dispPackages').slideToggle('slow') this will set display:block $('#dispPackages').slideToggle('slow').css("display","inline-block"); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> <button id="submitBtn">clickhere</button> <div class="panel-group" id="dispPackages" style="display: none"> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href="#collapse1"> Collapsible Group 1</a> </h4> </div> <div id="collapse1" class="panel-collapse collapse in"> <div class="panel-body"> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. </div> </div> </div> <div class="panel panel-default"> <div class="panel-heading"> <h4 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href="#collapse2"> Collapsible Group 2</a> </h4> </div> <div id="collapse2" class="panel-collapse collapse"> <div class="panel-body"> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. </div> </div> </div> </div> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM