Есть блок при клике по которому должны раскрываться вложеные в этот блок блочки. Убираться эти вложенные блочки должны по клике по этому блоку или же по клику вне его области. Сейчас почему то вне области срабатывает отлично, а при клике по блоку срабатывает событие всего один раз. Вот код:
$('.in20 .hid').click(function(){
var check = $(this).siblings('.hid-content').is(':visible')
$('.in20 .in19 .hid-content').each(function(){$(this).hide()})
if(!check){
$(this).siblings('.hid-content').show();
} else {
$(document).mouseup(e => {
let ourBlock = $('.hid-content');
if (!ourBlock.is(e.target) && ourBlock.has(e.target).length === 0)
ourBlock.hide();
})
}
});
<form method="get" action="" class="in20">
{foreach $filters as $fid => $filter}
<div class="in19"> <!---->
{if $fid == 'price'}
<div class=" "> <!--in16-->
{$c = $wa->shop->currency(true)}
<div class="in17 hid"><b>[`Price`] <i class="fa fa-angle-down"></i></b></div>
<div class="hid-content" style="display:none;">
<div class="flex-prices slider">
[`from`] <input type="text" class="min" name="price_min" {if $wa->get('price_min')}value="{(int)$wa->get('price_min')}"{/if} placeholder="{floor($filter.min)}">
[`to`] <input type="text" class="max" name="price_max" {if $wa->get('price_max')}value="{(int)$wa->get('price_max')}"{/if} placeholder="{ceil($filter.max)}">{*{$c.sign} *} </div>
</div>
</div>
{else}
<div class=""> <!--in18-->
<div class="in17 hid"><b>{$filter.name|escape} <i class="fa fa-angle-down"></i></b></div>
<div class="hid-content" style="display:none;">
<span style="display: none">{$filter.values|asort}</span>
{foreach $filter.values as $v_id => $v}
<label>
<input type="checkbox" name="{$filter.code}[]" {if in_array($v_id, (array)$wa->get($filter.code, array()))}checked{/if} value="{$v_id}"> {$v}
</label>
{/foreach}
</div>
</div>
{/if}
</div>
{/foreach}
<div class="b_reset1">
<input type="submit" class="in21" value="[`Filter products`]">
<div class="b_reset2" onclick="window.location='/category/{$category.url|escape}'">Сбросить фильтр</div>
</div>
</form>