У меня есть три значка. Когда я нажимаю один, я добавляю оверлей (например, световой блок), а затем вывожу текстовое поле, объясняющее значок, а затем скрываю текстовое поле при нажатии на оверлей.Скрыть текстовое поле при нажатии окна (jQuery)
Я получил все, кроме случаев, когда я снова нажимаю на поле, текстовое поле больше не появляется. Нужно ли мне что-то обновлять или что-то в этом роде?
HTML:
<div class="serviceOption">
<a class="iconAnchor"> <i id="bigIcon" class="fa fa-laptop fa-3x" aria-hidden="true"></i></a>
<label for="serviceCheckbox"> Technology Audits</label>
</div>
<div id="techPopup" for="anchor1" class="popupBox">
<h2>HEADLINE 1</h2>
<p> Popup text 1<p>
</div>
<div class="serviceOption">
<a class="iconAnchor"><i id="bigIcon" class="fa fa-cloud fa-3x" aria-hidden="true"></i></a>
<label for="serviceCheckbox1"> Cloud Solutions</label>
</div>
<div id="cloudPopup" class="popupBox">
<h2>HEADLINE 2</h2>
<p> Popup text 2<p>
</div>
<div class="serviceOption">
<a class="iconAnchor"><i id="bigIcon" class="fa fa-envelope fa-3x" aria-hidden="true"></i></a>
<label for="serviceCheckbox2"> Email Solutions</label>
</div>
<div id="cloudPopup" class="popupBox">
<h2>HEADLINE 3</h2>
<p>Popup text 3</p>
</div>
и мой JQuery:
/* ----------- SERVICES TOGGLE ON SERVICES PAGE--------------- */
// 1. Create overlay and append it to body
var overlay = $('<div id=overlay></div>');
$('body').append(overlay);
$('.iconAnchor').click(function(){
var serviceParagraph = $(this).closest('.serviceOption').next('.popupBox');
overlay.show();
overlay.append(serviceParagraph);
serviceParagraph.slideDown();
}); // end ICON click
$(overlay).click(function(event){
$('.popupBox').slideUp(200);
overlay.hide();
}); // end OVERLAY click
Это работает, но на нем не отображается оверлей. Когда я верну его в свой сценарий, у него по-прежнему есть такая же проблема: JQ: var overlay = $ ('
'); $ ('body'). Append (overlay); $ ('popupBox'). Hide(); $ ('. IconAnchor'). Click (function() { var textBox = $ (this) .closest ('. ServiceOption'). Next ('. PopupBox'); (overlay) .append (textBox); overlay.show(); textBox.slideToggle (200); }); $ ('popupBox'). Click (function() { $ (this) .slideToggle(); overlay.hide(); }); – brandonstilesИзвините за беспорядок там тоже, это не позволило мне отформатировать его – brandonstiles
Я удалил оверлейную часть b/c, для которой не было необходимости выполнять то, что вы описывали. Вам нужен дополнительный div, чтобы обернуть эти всплывающие div? –