MixitUp Не работает с вкладкой Bootstrap

  $(function () {
            $('#container').mixItUp({
                layout: {
                    display: 'block'
                },
                controls: {
                    toggleFilterButtons: false,
                    toggleLogic: 'or'
                }
            });
        });
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
<script src="http://code.jquery.com/jquery-2.2.0.min.js"></script>
<html>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>

  <head>

<script src="http://cdn.jsdelivr.net/jquery.mixitup/latest/jquery.mixitup.min.js"></script>
  </head>
<body>
<ul class="nav nav-tabs">

        <li><a data-toggle="tab" href="#rest"> Menu 1</a></li>
        <li><a data-toggle="tab" href="#retail">Menu 2</a></li>

    </ul>


    <div class="tab-content">
        <!-- REMOVE THIS TAB PANE MIXITUP will WOrk-->
        <div id="rest" class="tab-pane fade in" >
        <br>
            <ul class="nav nav-tabs">
                <li class="active">
                    <a href="#full" data-toggle="tab">Full Service</a>
                </li>
                <li>
                    <a href="#quick" data-toggle="tab">Quick Service</a>
                </li>
                <li>
                    <a href="#catering" data-toggle="tab">Catering</a>
                </li>
            </ul>

            <div class="tab-content">
                <div id="full" class="tab-pane active fade in">
                    <ul class="filters btns">   

                        <li><a href="#" class="filter" data-filter=".hotel">Hotel</a></li>
                        <li><a href="#" class="filter" data-filter=".cafe">Cafeteria</a></li>
                        <li><a href="#" class="filter" data-filter=".dining">Dining</a></li>

                    </ul>

                    <div id="container">
                        <div class="mix col-md-3 hotel">Row 1</div>
                        <div class="mix col-md-3 hotel cafe">Row 2</div>
                        <div class="mix col-md-3 cafe dining">Row 3</div>
                        <div class="mix col-md-3 dining hotel">Row 4</div>
                        <div class="mix col-md-3 cafe">Row 5</div>

                    </div>
                </div>
                <div id="quick" class="tab-pane fade in">
                    Quick Service
                </div>
                <div id="catering" class="tab-pane fade in">
                    Catering
                </div>
            </div>
        </div>
        <div id="retail" class="tab-pane fade in">
            Second tabe
        </div>
    </div></body></html>

Кто-то Пожалуйста, помогите мне найти эту ошибку -> MixIt Up не работает с Css Tabs Если мы удалим панель вкладок, я буду работать

Кто-нибудь, пожалуйста, найдите решение этой проблемы

Пожалуйста, найдите этот комментарий в коде и удалите класс tab-pane, тогда MixItUp будет работать

tab-pane - это класс из Bootstrap.

3 ответа

Я столкнулся с той же проблемой некоторое время назад. Кажется, есть некоторые проблемы при использовании вкладок Bootstrap с MixItUp. Я не знаю почему, но мне удалось найти решение.

Просто измените свой JavaScript следующим образом...

$(document).ready(function() {
        $('a[data-toggle="tab"]').on('show.bs.tab', function (e) {
            $('#container').mixItUp({
                layout: {
                    display: 'block'
                },
                controls: {
                    toggleFilterButtons: false,
                    toggleLogic: 'or'
                }
            });
});
}); 

Объяснение: строка $('a[data-toggle="tab"]') спрашивает о href, по которому вы щелкаете, и сообщает, что при вызове функции show.bs.tab будет получен остаток кода казнены.

Вы можете дополнительно настроить mixitup и иметь несколько фильтров логики для разных вкладок. Для этого Вы можете использовать целевой атрибут.

var target = $(e.target).attr('href');
          if (target === '#full'){
/* filter loginc */  }

Я нашел этот ответ на форуме MixItUp. Для получения дополнительной информации, нажмите здесь.

Здесь вы можете найти решение для этой проблемы из mixItUp версии 3.1.0. Вы можете определить другой селектор [data-attribute] вместо [data-toggle].

mixitup(container, {
 selectors: {
     control: '[data-mixitup-control]'
 }
}

А потом:

<button type="button" data-mixitup-control data-filter=".red">Red</button>
<button type="button" data-mixitup-control data-toggle=".blue">Blue</button>
<button type="button" data-mixitup-control data-sort="default:desc">Sort Desc</button>

https://github.com/patrickkunka/mixitup/issues/268

Это сработало для меня. Убедитесь, что фильтры находятся внутри контейнера класса "mixit"

var mixer = mixitup('.mixit', {
         controls: {
          scope: 'local'
         }
      });

Другие вопросы по тегам