最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Bootstrap dropdown not closing on clicking outside - Stack Overflow

programmeradmin0浏览0评论

In my application I have added close button side bootstrap dropdown. Clicking on that close button I have to close that dropdown. This is working properly, but when I click anywhere outside dropdown, dropdown is not closing Here is Fiddle : goo.gl/3RAkBw

Can any one tell me how can I close

In my application I have added close button side bootstrap dropdown. Clicking on that close button I have to close that dropdown. This is working properly, but when I click anywhere outside dropdown, dropdown is not closing Here is Fiddle : goo.gl/3RAkBw

Can any one tell me how can I close

Share Improve this question edited Oct 4, 2016 at 11:46 vaibhav shah asked Oct 4, 2016 at 11:41 vaibhav shahvaibhav shah 5,07919 gold badges61 silver badges99 bronze badges 2
  • The fiddle link is missing – Kiran Dash Commented Oct 4, 2016 at 11:42
  • jsfiddle/n66mj41v/1 – vaibhav shah Commented Oct 4, 2016 at 11:44
Add a ment  | 

4 Answers 4

Reset to default 2

You can try this:

$(document).on('click',function(){
    $('#layers').hide();
  })

   $( document.body ).on( 'click', '.dropdown-menu li', function( event ) {

      var $target = $( event.currentTarget );

      $target.closest( '.btn-group' )
         .find( '[data-bind="label"]' ).text( $target.text() )
            .end()
         .children( '.dropdown-toggle' ).dropdown( 'toggle' );

      return false;

   });
   $(window).on('click', function () {
     $( '#layers' ).css( 'display','none' );
   });
.btn-input {
   display: block;
}

.btn-input .btn.form-control {
    text-align: left;
}

.btn-input .btn.form-control span:first-child {
   left: 10px;
   overflow: hidden;
   position: absolute;
   right: 25px;
}

.btn-input .btn.form-control .caret {
   margin-top: -1px;
   position: absolute;
   right: 10px;
   top: 50%;
}
<script src="https://ajax.googleapis./ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script src="http://netdna.bootstrapcdn./bootstrap/3.0.3/js/bootstrap.min.js"></script>
<link href="http://netdna.bootstrapcdn./bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet"/>
<br/><br/>



         <div class="panel panel-default">
            <div class="panel-body">
               <div class="btn-group">
                 <button onclick="$('#layers').toggle();" type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
                   <span data-bind="label">Select One</span>&nbsp;<span class="caret"></span>
                 </button>
                 <ul id="layers" class="dropdown-menu" role="menu">
                 <span><img class="close_img dropdown-toggle" onclick="$('#layers').toggle();" data-toggle="dropdown" src="https://www.eonenergy./images/icons/close.gif" alt="CloseWindow" title="Close" style="margin-top:5px;margin-right:5px" /></span>
                   <li><a href="#">Item 1</a></li>
                   <li><a href="#">Another item</a></li>
                   <li><a href="#">This is a longer item that will not fit properly</a></li>
                 </ul>
               </div>
             </div>
          </div>

 
<br/><br/>

You can set click event on window like, (if you have to hide only on click of anywhere on window)

$(window).on('click', function () {
     $( '#layers' ).css( 'display','none' ); //$( '#layers' ).hide();
   });

Simply use the below jquery code

  $(document).click( function () {
   $("#layers").css("display", "");
  });

or use

$(document).click( function () {
  $("#layers").toggle();

});

"show" class is added when the dropdown is clicked so to hide the dropdown menu you have to remove it:

$(document).on('click',function(){
    $('#user-menu').removeClass('show');
})
发布评论

评论列表(0)

  1. 暂无评论