これは私のグラフィック デザイン ポートフォリオ サイトですが、フィルターに少し問題があります。jQueryとクラスを使用して作成しました。リンクをクリックすると、それ以外のすべての「.tags」が非表示になります。これはすべて正しく機能します。(5 行目から 19 行目)
21 行目から、アイテムの下に div とコンテンツを動的に追加する関数を作成しました。存在する要素の数、現在の要素の位置を見つけ、新しい div を挿入する位置 (3 列の行の最後) を見つけます。これらはすべて、単独で正しく機能します。
問題は、一部の '.tags' がフィルター処理されると、2 番目の関数が現在の要素の位置を正しく見つけられないことです。これは、ソース コードから要素を実際に削除するのではなく、単純に非表示にするためです。コンテンツを再読み込みし続ける必要がないように、そのままにしておく必要があります。
var portfolio = '#portfolio > a';
var elements = $(portfolio).children(':visible').length; //finds how many elements are in the portfolio
var getPosition = $(portfolio).siblings('a :visible').addBack().index(this); //find the position of the div
上記のコードは問題領域 (25 ~ 26 行目) ですが、参照用のコード全体は次のとおりです: http://jsfiddle.net/cQUMs/5/
私の可変要素は、フィルターが使用されているかどうかに関係なく、正しい数の要素を取得するのに問題はありません。getPositionは、何かがフィルタリングされる前に正しい位置を取得しますが、その数は保持します。動的に更新する必要があります。