#javascript #jquery #css #twitter-bootstrap #twitter-bootstrap-3
#javascript #jquery #css #twitter-bootstrap #twitter-bootstrap-3
Вопрос:
В моем приложении я добавил выпадающий список начальной загрузки со стороны кнопки закрытия. Нажав на эту кнопку закрытия, я должен закрыть этот выпадающий список. Это работает правильно, но когда я нажимаю в любом месте вне выпадающего списка, выпадающий список не закрывается, вот скрипка : goo.gl/3RAkBw
Может кто-нибудь сказать мне, как я могу закрыть
Комментарии:
1. Ссылка на скрипку отсутствует
Ответ №1:
Вы можете попробовать это:
$(document).on('click',function(){
$('#layers').hide();
})
Ответ №2:
$( 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.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script src="http://netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
<link href="http://netdna.bootstrapcdn.com/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>amp;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.com/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/>
Вы можете установить событие щелчка в окне, например, (если вам нужно скрыть только при щелчке в любом месте окна)
$(window).on('click', function () {
$( '#layers' ).css( 'display','none' ); //$( '#layers' ).hide();
});
Комментарии:
1. Я обновил скрипку, все та же проблема jsfiddle.net/n66mj41v/11
2. @vaibhavshah пишите только
$( window ).on( 'click', function( event ) {
.. по щелчку окна вы должны скрыть выпадающий список .. и в этой скрипке в окне и в конкретном выпадающем списке вы можете настроить css.. вот почему это не сработало..
Ответ №3:
Просто используйте приведенный ниже код jquery
$(document).click( function () {
$("#layers").css("display", "");
});
или используйте
$(document).click( function () {
$("#layers").toggle();
});
Ответ №4:
класс «показать» добавляется при нажатии на выпадающий список, поэтому, чтобы скрыть выпадающее меню, его необходимо удалить:
$(document).on('click',function(){
$('#user-menu').removeClass('show');
})