1

多数の jQuery isotopeフィルターsortがあります。すべてがうまく機能しますが、リセットボタンを作成したいと思います。

私は次のことを試しました(stackoverflow:すべての組み合わせフィルターをリセットします)が、(2回目のクリックで)アイテムをリセットしているように見えますが、フィルターボタンはリセットされません。

4

1 に答える 1

0

書くときは「フィルターボタンの見た目をリセットしない」という意味だと思います。

[…]フィルターボタンはリセットされません。

その場合、Isotopeの例のように、フィルターボタンの外観がCSSクラスによって制御されている場合は、ユーザーが[リセット]をクリックしたときに、フィルターボタン要素から上記のCSSクラスを削除するだけです。 "-ボタン。

たとえば、Isotopeの「Combinationfilters」-デモンストレーションのソースには、フィルターボタンの1つがクリックされたときに発生するすべてを処理する次のコードがあります。

// filter buttons
$('.filter a').click(function(){
  var $this = $(this);
  // don't proceed if already selected
  if ( $this.hasClass('selected') ) {
    return;
  }

  var $optionSet = $this.parents('.option-set');
  // change selected class
  $optionSet.find('.selected').removeClass('selected');
  $this.addClass('selected');

  // store filter value in object
  // i.e. filters.color = 'red'
  var group = $optionSet.attr('data-filter-group');
  filters[ group ] = $this.attr('data-filter-value');
  // convert object into array
  var isoFilters = [];
  for ( var prop in filters ) {
    isoFilters.push( filters[ prop ] )
  }
  var selector = isoFilters.join('');
  $container.isotope({ filter: selector });

  return false;
});

あなたの質問に関連する重要なコード(うまくいけば)はこれらの行にあります:

$optionSet.find('.selected').removeClass('selected');
$this.addClass('selected');
  • 最初の行は、$ optionSet内のすべての要素からすべての「選択された」クラスを削除します(後者は、単一のフィルタープロパティを対象とするボタンのセットです)
  • 2つ目は、ユーザーがクリックした要素の「選択された」クラスを設定します
于 2012-10-04T00:54:07.240 に答える