Закрытие открытого блока при клике на другой
Доброго времени суток, суть проблемы состоит в том, чтобы при клике на #trigger2 открывался #box2, при клике на #trigger3 - #box2 закрывался и открывался #box3, аналогично с #box4, при клике вне блоков #box2,3,4 закрытие этих блоков, но тут возникает проблема, что собственно триггеры будут областью вне дива box и соотвественно не откроются.
Спасибо за внимание! С уважением, Coroner. Демо
<div class="advanced">
<a href='#' id='trigger2'> <article>
<img src="img/discount.png">
<span>
акции на товары недели
</span>
<p>скидки до -50%</p>
</article></a>
<a href='#' id='trigger3'><article>
<img src="img/box.png">
<span>
акции на товары недели
</span>
<p>скидки до -50%</p>
</article></a>
<a href='#' id='trigger4'><article>
<img src="img/cards.png">
<span>
акции на товары недели
</span>
<p>скидки до -50%</p>
</article></a>
<div id='box2' style='display: none;'>
Кофеман 24 - это крупнейшее в России производство снеков и кондитерских изделий, а также мощное логистическое звено: у холдинга свои склады, распределительные центры и свой автопарк. Именно такой подход к организации бизнес-процессов позволяет KDV держать демократичные цены на свою продукцию. А покупая ее напрямую у производителя – в интернет-магазине KDV, вы приобретаете товар по привлекательным ценам.
</div>
<div id='box3' style='display: none;'>
Кофеман 24 - это крупнейшее в России производство снеков и кондитерских изделий, а также мощное логистическое звено: у холдинга свои склады, распределительные центры и свой автопарк. Именно такой подход к организации бизнес-процессов позволяет KDV держать демократичные цены на свою продукцию. А покупая ее напрямую у производителя – в интернет-магазине KDV, вы приобретаете товар по привлекательным ценам.
</div>
<div id='box4' style='display: none;'>
Кофеман 24 - это крупнейшее в России производство снеков и кондитерских изделий, а также мощное логистическое звено: у холдинга свои склады, распределительные центры и свой автопарк. Именно такой подход к организации бизнес-процессов позволяет KDV держать демократичные цены на свою продукцию. А покупая ее напрямую у производителя – в интернет-магазине KDV, вы приобретаете товар по привлекательным ценам.
</div>
</div>
<script type='text/javascript'>
$(document).ready(function() {
$("A#trigger2").toggle(function() {
// Отображаем скрытый блок
$("DIV#box2").fadeIn(); // fadeIn - плавное появление
return false; // не производить переход по ссылке
},
function() {
// Скрываем блок
$("DIV#box2").fadeOut(); // fadeOut - плавное исчезновение
return false; // не производить переход по ссылке
}); // end of toggle()
}); // end of ready()
</script>
<script type='text/javascript'>
$(document).ready(function() {
$("A#trigger3").toggle(function() {
// Отображаем скрытый блок
$("DIV#box3").fadeIn(); // fadeIn - плавное появление
return false; // не производить переход по ссылке
},
function() {
// Скрываем блок
$("DIV#box3").fadeOut(); // fadeOut - плавное исчезновение
return false; // не производить переход по ссылке
}); // end of toggle()
}); // end of ready()
</script>
<script type='text/javascript'>
$(document).ready(function() {
$("A#trigger4").toggle(function() {
// Отображаем скрытый блок
$("DIV#box4").fadeIn(); // fadeIn - плавное появление
return false; // не производить переход по ссылке
},
function() {
// Скрываем блок
$("DIV#box4").fadeOut(); // fadeOut - плавное исчезновение
return false; // не производить переход по ссылке
}); // end of toggle()
}); // end of ready()
</script>
|
CORONER,
на форуме есть все варианты открыть по клику, их более 400 ... https://javascript.ru/forum/css-html...tml#post494297 https://javascript.ru/forum/dom-wind...tml#post494186 искать открывашка |
Как можно реализовать закрытие дива dropdown при клике вне его области? Пытаюсь обычными средствами это реализовать, но, как показывает практика - все выходит боком.
Пробовал сделать так, но ничего не выходит. И вещал на .wrapper-content, .dropdown - результат нулевый.
$(document).mouseup(function (e) {
var container = $(".dropdown");
if (container.has(e.target).length === 0){
container.hide();
}
});
Но
<div class="row">
<div class="col-sm-3 col-md-2">
<div id="dd-make" class="wrapper-dropdown" tabindex="1">
<span>
<article> <img src="img/box.png">
<span>
бесплатная доставка
</span>
<p>от 1500 рублей</p>
</article>
</span>
<ul class="dropdown">
1
</ul>
</div>
</div>
<div class="col-sm-3 col-md-2">
<div id="dd-model" class="wrapper-dropdown " tabindex="1">
<span>
<article> <img src="img/discount.png">
<span>
акции на товары недели
</span>
<p>скидки до -50%</p>
</article>
</span>
<ul class="dropdown">
2
</ul>
</div>
</div>
<div class="col-sm-3 col-md-2">
<div id="dd-year" style="margin-left:1%;" class="wrapper-dropdown " tabindex="1">
<span>
<article>
<img src="img/cards.png">
<span>
условия оплаты
</span>
<p>способы оплаты</p>
</article>
</span>
<ul class="dropdown">
3
</ul>
</div>
</div>
function DropDown(el) {
this.dd = el;
this.placeholder = this.dd.children('span');
this.opts = this.dd.find('ul.dropdown > li');
this.val = '';
this.index = -1;
this.initEvents();
}
DropDown.prototype = {
initEvents : function() {
var obj = this;
obj.dd.on('click', function(event){
$('.wrapper-dropdown').not(this).removeClass('active');
$(this).toggleClass('active');
return false;
});
obj.opts.on('click',function(){
var opt = $(this);
obj.val = opt.text();
obj.index = opt.index();
obj.placeholder.text(obj.val);
});
},
getValue : function() {
return this.val;
},
getIndex : function() {
return this.index;
}
}
$(function() {
var ddMake = new DropDown( $('#dd-make') );
var ddModel = new DropDown( $('#dd-model'));
var ddYear = new DropDown( $('#dd-year') );
var ddSeries = new DropDown( $('#dd-series'));
var ddEngine = new DropDown( $('#dd-engine') );
var ddVariant = new DropDown( $('#dd-variant'));
});
|
пример :)
|
| Часовой пояс GMT +3, время: 04:00. |