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>
Это сработало для меня. Убедитесь, что фильтры находятся внутри контейнера класса "mixit"
var mixer = mixitup('.mixit', {
controls: {
scope: 'local'
}
});