@reper666

Не правильно срабатывает событие скрытия контента по клику?

Есть блок при клике по которому должны раскрываться вложеные в этот блок блочки. Убираться эти вложенные блочки должны по клике по этому блоку или же по клику вне его области. Сейчас почему то вне области срабатывает отлично, а при клике по блоку срабатывает событие всего один раз. Вот код:
$('.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>
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы