2016-03-23 11 views
2

MixstUp'ı önyükleme sekmeleriyle kullanmayı düşünmekteyim, şimdi birkaç tane things okudum, ancak bu sorunu çözmedi. BootTrap Sekmeleri ile MixItUp sorunu

This

ayrıca asgari koduyla codepen sorunu çoğaltmak mümkün olmuştur

sorununu çözmek değil. http://codepen.io/anon/pen/aNWwZL

Sorun, filtreleri farklı sekmelerde uygularken çalışmayı durdurduklarıdır.

Repro:

  1. Sekmesi'ndeki filtre uygula 1
  2. Tab 2
  3. deneyin filtresi uygulama ve filtreler artık 3. basamakta Tab 1'de yine

filtre uygulamak iş.

Bunu birkaç günlüğüne çözmeye çalışıyorum ve sıkıştım. İşte sekmeler arasında geçiş kolları kod bazı: Ben sekmeleri basıldığında vardı ('yok') mixItUp aramak emin olarak bu sorunu çözmek mümkün olmuştur

$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) { 
    var target = $(e.target).attr('href'); 
    if (target === "#TvShowTab") { 
     if (!$('#tvList').mixItUp('isLoaded')) { 
     $('#tvList').mixItUp(); 
     } 
    } 
    if (target === "#MoviesTab") { 
     if (!$('#movieList').mixItUp('isLoaded')) { 
      $('#movieList').mixItUp(); 
     } 
    } 
}); 
+0

Ben gizli '.tab-pane'' none' 'ayarlı display' gerçeği ile ilgili olduğunu düşünüyorum. En altta CSS değiştirdim: http://codepen.io/makshh/pen/BKRdYZ – makshh

+0

@makshh Çalışıyor, ancak 2. sekmedeki içerik neden aşağı itiliyor? Bunu önlemek için zaten var mı? –

+0

@makshh için çözüm sonuçta benim için çalışmayı durdurdu. Sekmeler basılı olduğunda mixItUp ('yok') aramak için emin olarak bu konuda elde etmek başardı. http://codepen.io/shiitake/pen/oxWeaj – shiitake

cevap

1

.

if (target === "#TvShowTab") { 
    if ($('#movieList').mixItUp('isLoaded')) 
    {  
    $('#movieList').mixItUp('destroy'); 
    }  
    if (!$('#tvList').mixItUp('isLoaded')) { 
    $('#tvList').mixItUp();   
    } 
} 

Eğer Filtrelerinizin yok api çalıştırmadan önce mixItUp ('getState') kullanabilir sekmeleri arasında kalıcı olmasını isterseniz. İşte bu eklenmiş gibi görünüyor.

$(function() { 
$('#movieList').mixItUp(); 


$('a[data-toggle="tab"]').on('shown.bs.tab', function(e) { 
    var target = $(e.target).attr('href'); 
    var activeState = '' 
    if (target === "#TvShowTab") { 
     if ($('#movieList').mixItUp('isLoaded')) { 
      activeState = $('#movieList').mixItUp('getState'); 
      $('#movieList').mixItUp('destroy'); 
     } 
     if (!$('#tvList').mixItUp('isLoaded')) { 
      $('#tvList').mixItUp({ 
       load: { 
        filter: activeState.activeFilter || 'all', 
        sort: activeState.activeSort || 'default:asc' 
       } 
      }); 
     } 
    } 
    if (target === "#MoviesTab") { 
     if ($('#tvList').mixItUp('isLoaded')) { 
      activeState = $('#tvList').mixItUp('getState'); 
      $('#tvList').mixItUp('destroy'); 
     } 
     if (!$('#movieList').mixItUp('isLoaded')) { 
      $('#movieList').mixItUp({ 
       load: { 
        filter: activeState.activeFilter || 'all', 
        sort: activeState.activeSort || 'default:asc' 
       } 
      }); 
     } 
    } 
}); 
});