Имитация щелчка для открытия элемента Bootstrap collapse
Я пытаюсь имитировать клик на Bootstrap collapse заголовок, но безуспешно.
что я действительно хочу сделать, это когда пользователь нажимает на изображение рядом с заголовком аккордеона, он открывается точно так же, как если бы пользователь нажал на <a>
заголовка.
здесь скрипка для лучшего понимания
моя разметка HTML выглядит так:
<div class="accordion" id="accordionFilter">
<div class="accordion-group">
<div class="accordion-heading">
<img src="http://placehold.it/40x40" onclick="SimulateClick();">
<a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#accordionFilter" href="#collapseOne">
Filter the results
</a>
</div>
<div id="collapseOne" class="accordion-body collapse">
<div class="accordion-inner">
<div class="row">
<br>
<div class="col-lg-3 col-md-3 col-sm-3">
1st column content
</div>
<div class="col-lg-3 col-md-3 col-sm-3">
2nd column content
</div>
</div>
</div>
</div>
</div>
</div>
но я понятия не имею как чтобы написать "при нажатии на изображение, откройте аккордеон" в SimulateClick()
метод JS.
Я пробовал с чем-то вроде
$("#collapseOne").click();
или
$("#collapseOne").addClass("in");
но он ничего не делает.
Есть идеи ?
2 ответов
вам не нужно имитировать щелчок, поскольку bootstrap предоставляет методы, которые можно использовать для программного управления плагинами. В этом случае есть 'toggle':
$('.accordion-heading img').click(function() {
$('#collapseOne').collapse('toggle');
});
<link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<script type="text/javascript" src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
<div class="accordion" id="accordionFilter">
<div class="accordion-group">
<div class="accordion-heading">
<img src="http://placehold.it/40x40">
<a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#accordionFilter" href="#collapseOne">
Filter the results
</a>
</div>
<div id="collapseOne" class="accordion-body collapse" style="height: 0px;">
<div class="accordion-inner">
<div class="row">
<br>
<div class="col-lg-3 col-md-3 col-sm-3">
1st column content
</div>
<div class="col-lg-3 col-md-3 col-sm-3">
2nd column content
</div>
</div>
</div>
</div>
</div>
</div>
подробнее о доступных методах API: http://getbootstrap.com/javascript/#collapse-usage
Если я правильно понял ваше требование, почему бы не включить <img>
внутри <a>
тег?
<a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#accordionFilter" href="#collapseOne">
<img src="http://placehold.it/40x40">
Filter the results
</a>
Is этой что тебе нужно?