Как правило, вы можете использовать функцию готовности одного документа.
В этом случае вы также можете использовать одну функцию click
для управления переключателями.Поскольку вы используете триггерные ссылки, вам потребуется способ ссылки на целевой блок, но что-то вроде этого будет работать с дополнительным атрибутом, чтобы получить имя блока.(Вы можете сделать это и с индексами, но для простоты использования я добавил атрибут target-box
, который имеет идентификатор нужного поля.)
Я также добавил тот же box
class для обоих div, вы можете удалить отдельные box1/box2
классы, так как у вас есть идентификаторы, которые уже обрабатывают различия.
Я также добавил класс toggle
к ссылкам, чтобы дать им более семантический селектори удалил ненужные дубликаты «открыть / закрыть» (поскольку toggle
предназначен для обработки обоих)
jQuery(document).ready(function($){
$('.toggle').on('click', function(){
var targetBox = $(this).attr('target-box'); // Find the target box
$('.box').not(targetBox).hide(1000); // Hide all other boxes
$(targetBox).toggle(1000); // Toggle the current state of this one
});
});
.container {
width: 90px;
}
.box1 {
background-color: green;
color: red;
display: none;
}
.box2 {
background-color: blue;
color: yellow;
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<div class="box box1" id="box1">
This is Box 1
</div>
<div class="box box2" id="box2">
This is Box 2
</div>
</div>
<a href="#" class="toggle" target-box="#box1">Toggle Box1</a>
<a href="#" class="toggle" target-box="#box2">Toggle Box2</a>