Я сделал кодэп с примером.Показать только родственный div с конкретным классом
http://codepen.io/anon/pen/vNgvwV
При нажатии на кнопку, и она меняется на «зеленый» - установлен, родственный «time_container» должен показать.
$(".button_cell").click(function() {
var self = this, // Cache
div1 = $('.check_button', self), // Cache
div2 = $('.checked_button', self), // Cache
div3 = $('.red_check', self), // Cache
divtemp = $('.time_container', self); // Cache
if (div1.is(':visible')) {
div1.hide();
$(div2, divtemp).show();
} else if (div2.is(':visible')) { // Use else if
div3.show();
$(div2, divtemp).hide();
} else if (div3.is(':visible')) { // Use else if
div3.hide();
div1.show(); // Use multiple selectors
}
});
body {
background: #fafafa;
height: 100vh;
width: 100vw;
color: #282828;
margin: 0;
}
.button_cell {
cursor: pointer;
display: block;
height: 100px;
width: 100px;
-webkit-user-select: none;
/* Chrome/Safari */
-moz-user-select: none;
/* Firefox */
-ms-user-select: none;
/* IE10+ */
margin: 10px;
}
.check_button {
height: 100px;
width: 100px;
display: block;
background: gray;
}
.checked_button {
height: 100px;
width: 100px;
display: none;
background: green;
}
.red_check {
height: 100px;
width: 100px;
display: none;
background: red;
}
.time_container {
display: none;
height: 100px;
width: 100px;
background: blue;
color: white;
margin: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row">
<div class="button_cell">
<div class="check_button">Empty</div>
<div class="checked_button">Checked</div>
<div class="red_check">Red Checked</div>
</div>
<div class="time_container">Time Container</div>
</div>
<div class="row">
<div class="time_container">This one should not be shown</div>
Я не могу получить эту работу. Любые идеи?
Привет и спасибо, я вижу, что это работает в вашем фрагменте, но я не могу заставить его работать на моем сайте. Кроме того, я не понимаю, какая строка кодов отображает только контейнер для соседей, а не другой? –
А, я вижу. вы не закрыли div button_cell, так что вы сделали time_container ребенком? –
Строка 'var self = this', определенная в коде при нажатии кнопки, и вы ссылаетесь на контейнер для сиблинга с этой кнопкой, из-за которой он не влияет на другой. –