Masonry js 无法使用 bootstrap 选项卡
Masonry js not working with bootstrap tab
我创建了 bootstrap 选项卡选项,我还应用了 masonry js。因此,该框会出现一个小框和另一个 big.On 第一个选项卡它工作正常但在另一个选项卡中它不工作。
我的 HTML 代码如下
<ul class="tabs" id="myTab">
<li class="tab-link current" data-tab="tab-1">First</li>
<li class="tab-link" data-tab="tab-2">Second</li>
</ul>
<div id="tab-1" class="tab-content current">
<div class="container">
<div class="gridnew">
<div class="grid-item">
<img src="Result-img-1.jpg" alt="">
<img src="Result-img-1.jpg" alt="">
<img src="Result-img-1.jpg" alt="">
</div>
</div>
</div>
</div
<div id="tab-2" class="tab-content current">
<div class="container">
<div class="gridnew">
<div class="grid-item">
<img src="Result-img-1.jpg" alt="">
<img src="Result-img-1.jpg" alt="">
<img src="Result-img-1.jpg" alt="">
</div>
</div>
</div>
</div
下面给出了我的 JS 代码
<script type="text/javascript">
$('.gridnew').masonry({
itemSelector: '.grid-item'
});
终于得到答案了
每次点击我的选项卡时触发 .masonry()。
<script type="text/javascript">
$('#myTab li').click(function (e)
{
$("[id^='tab']").hide();
e.preventDefault()
var ids=$(this).data('tab');
$("#"+ids).show();
$('.gridnew').masonry({
itemSelector: '.grid-item'
});
})
</script>
要毫无问题地调用 'shown.bs.tab',请使用 jQuery.noConflict()。对于砌体网格,您需要调用 'layout' 方法。
// Create the masonry grid
var $grid = $('.gridnew').masonry({
itemSelector: '.grid-item',
fitWidth: true,
gutter: 0,
percentPosition: true
});
// Issues with bs tabs and masonry refresh
jQuery.noConflict();
$(document).on('shown.bs.tab', 'a[data-toggle="tab"]', function (e) {
// Reload the already created masonry grid, each time you click the Bootstrap tab
$grid.masonry('layout');
});
我创建了 bootstrap 选项卡选项,我还应用了 masonry js。因此,该框会出现一个小框和另一个 big.On 第一个选项卡它工作正常但在另一个选项卡中它不工作。
我的 HTML 代码如下
<ul class="tabs" id="myTab">
<li class="tab-link current" data-tab="tab-1">First</li>
<li class="tab-link" data-tab="tab-2">Second</li>
</ul>
<div id="tab-1" class="tab-content current">
<div class="container">
<div class="gridnew">
<div class="grid-item">
<img src="Result-img-1.jpg" alt="">
<img src="Result-img-1.jpg" alt="">
<img src="Result-img-1.jpg" alt="">
</div>
</div>
</div>
</div
<div id="tab-2" class="tab-content current">
<div class="container">
<div class="gridnew">
<div class="grid-item">
<img src="Result-img-1.jpg" alt="">
<img src="Result-img-1.jpg" alt="">
<img src="Result-img-1.jpg" alt="">
</div>
</div>
</div>
</div
下面给出了我的 JS 代码
<script type="text/javascript">
$('.gridnew').masonry({
itemSelector: '.grid-item'
});
终于得到答案了
每次点击我的选项卡时触发 .masonry()。
<script type="text/javascript">
$('#myTab li').click(function (e)
{
$("[id^='tab']").hide();
e.preventDefault()
var ids=$(this).data('tab');
$("#"+ids).show();
$('.gridnew').masonry({
itemSelector: '.grid-item'
});
})
</script>
要毫无问题地调用 'shown.bs.tab',请使用 jQuery.noConflict()。对于砌体网格,您需要调用 'layout' 方法。
// Create the masonry grid
var $grid = $('.gridnew').masonry({
itemSelector: '.grid-item',
fitWidth: true,
gutter: 0,
percentPosition: true
});
// Issues with bs tabs and masonry refresh
jQuery.noConflict();
$(document).on('shown.bs.tab', 'a[data-toggle="tab"]', function (e) {
// Reload the already created masonry grid, each time you click the Bootstrap tab
$grid.masonry('layout');
});