この関数を使用すると、ユーザーは製品を色でフィルタリングできます(を使用data-attributes
)。複数の値に対応するように変更するにはどうすればよいですか?
データ属性の値のいずれかに一致するすべてのアイテムを返し、フィルターの1つが削除されたときに(特定の値またはすべての色の値のチェックを外すことによって)残りのフィルターのより厳しい基準に戻す関数が必要です。関数の簡単な例を含むフィドルをここに投稿しました:http://jsfiddle.net/chayacooper/WZpMh/21/。フィドルには現在data-attributes
内部<li>
タグがありますが、複数選択できるようにするためにチェックボックスを使用したいと思います。
編集-製品はデータカラー(つまり、黒、白)で価値以上のものを持つことができ、どちらの色でも利用できることを示し、マルチカラー(つまり、白黒)にすることができます。
の代わりにの$(this).data('color')
ようなものを使うべきだと思いますが$('input:checkbox:checked').data('color')
、それをどのように構成するかわかりません。
$(document).ready(function () {
$('#attributes-Colors *').click(function () {
var attrColor = $(this).data('color');
$('#attributes-Colors').removeClass('active');
$(this).parent().addClass('active');
if (attrColor == 'All') {
$('#content').find('*').show();
} else {
$('#content').find('li:not([data-color="' + attrColor + '"])').hide();
$('#content').find('[data-color ~="' + attrColor + '"]').show();
}
return false;
});
});