I need to implement a collapsible in bootstrap dropdown. After expanding a collapsible the dropdown closes as this is default behaviour of dropdown.
Html code as follows:
<div class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">Separated link</a></li>
<li>
<div class="panel panel-default" id="panel1">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapseOne">
Collapsible group of links
</a>
</h4>
</div>
<div id="collapseOne" class="panel-collapse collapse">
<div class="panel-body">
<ul>
<li><a href="#">Group link 1</a></li>
<li><a href="#">Group link 2</a></li>
<li><a href="#">Group link 3</a></li>
</ul>
</div>
</div>
</div>
</li>
</ul>
</div>
When I stop the event propagation in order to keep dropdown open always, collapsible stops working.
How can I prevent event propagation only for the dropdown? Is there any other way to achieve this?
As far as I know, there's no way to stopPropagation()
for a specific event, target or function.
Here's a workaround. Stop propagation and toggle the menu by yourself.
$('a[href="#collapseOne"]').on('click', function(e){ $($(this).attr('href')).toggle(); e.stopPropagation(); })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.js"></script> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> <div class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="#">Action</a></li> <li><a href="#">Another action</a></li> <li><a href="#">Something else here</a></li> <li role="separator" class="divider"></li> <li><a href="#">Separated link</a></li> <li> <div class="panel panel-default" id="panel1"> <div class="panel-heading"> <h4 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href="#collapseOne"> Collapsible group of links </a> </h4> </div> <div id="collapseOne" class="panel-collapse collapse"> <div class="panel-body"> <ul> <li><a href="#">Group link 1</a></li> <li><a href="#">Group link 2</a></li> <li><a href="#">Group link 3</a></li> </ul> </div> </div> </div> </li> </ul> </div>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.