アイソトープをフィルタリングして問題を解決しようとしていますが、私は立ち往生しています。チェックボックスを使用したアイソトープのフィルタリング
私はリスト内のすべてのチェックボックスのチェックを外すために、クリアリストボタンとそのチェックボックスのチェックを外し、isotope({filter: '*'})をクリックしてください。
私の問題は、クリアリストボタンをクリックしたときに、グリッドコンテナのアイソトープをクリアする方法を理解できないことです。 論理的には、グリッドコンテナは特定のリストの値なしで同位体でなければなりません。 そして、ときにすべてのリストは、グリッドは、({フィルタ:「*」})を同位体なければならない明確なリストのボタンでクリアされている
ここでは、あなたが見ることのために私のJSコード
function initIsotope(){
var $wrapper = $('.wrapper');
if($wrapper.length < 1){
return;
}
var $filters = $('.filters', $wrapper);
var $grid = $('.grid-container', $wrapper);
var $checkboxList = $ ('.checkbox-list', $wrapper);
var $checkboxes = $('.checkbox-control', $wrapper);
var $clearList = $('.clear-list', $wrapper);
var $clearAll= $('.clear-all', $wrapper);
//init Isotope
$grid.isotope({
itemSelector: '.grid-item',
layoutMode: 'fitRows'
});
//isotope filtering on checkbox click
// this part of code is from http://jsfiddle.net/desandro/DQydj/
$checkboxes.change(function(){
var filters = [];
// get checked checkboxes values
$checkboxes.filter(':checked').each(function(){
filters.push(this.value);
});
filters = filters.join(', ');
$grid.isotope({ filter: filters });
});
//clear list
$clearList.on('click', function(e){
e.preventDefault();
var $self = $(this);
$self.closest($checkboxList).find($checkboxes).prop("checked", false);
//Im stuck here
});
//clear-all lists
$clearAll.on('click',function(e){
e.preventDefault();
$checkboxes.prop("checked", false);
$grid.isotope({ filter: '*' });
});
}
$(function(){
initIsotope();
});
はjsfiddle例を持っています: https://jsfiddle.net/timosergio/at7gtc1g/35/
お願いします。
PS:私はjsFiddleを更新しました。私はより近づいていますが、欲望の結果です。あなたが気にしてそれをチェックしてください
ありがとうございました!それが本当に必要なのです!私はその論理を理解した。チェックされている残りのチェックボックスの値をグリッドに同調させなければならなかった。私は正しい? – Sergiti
まったく... ...)各チェックボックスのように、をクリックします。それが同じ「サブ機能」の理由です。 –
ようこそ@Louys – Sergiti