Ich habe eine Reihe von Kontrollkästchen und wählen Sie Liste, die zum Filtern von Elementen verwendet werden.jQuery Filterelemente basierend auf Datenattribut
Hier ist mein html:
<div id="users">
<input name="user" type="checkbox" value="1">
John
<input name="user" type="checkbox" value="2">
Mike
<input name="user" type="checkbox" value="3">
Peter </div>
<select name="products">
<option value="4">Product 1</option>
<option value="5">Product 2</option>
<option value="6">Product 3</option>
</select>
<ul id="items">
<li data-filter="1">Item 1</li>
<li data-filter="2">Item 2</li>
<li data-filter="1">Item 3</li>
<li data-filter="3">Item 4</li>
</ul>
und hier ist javascript:
$('select[name=products]').change(function() {
var filter = $(this).val();
filterList(filter);
});
//News filter function
function filterList(value) {
var list = $("#items li");
$(list).fadeOut("fast");
if (value == "all") {
$("#items").find("li").each(function() {
$(this).delay(200).slideDown("fast");
});
} else {
$("#items").find("li[data-filter*=" + value + "]").each(function() {
$(this).delay(200).slideDown("fast");
});
}
}
Mein Problem ist jetzt, Kontrollkästchen sowie einen Teil der Filteroptionen umfassen, aber ich bin nicht sicher, ob die Weg zu gehen. Kann ich Datenfilterwerte trennen wie: data-filter = "1,3", wobei 1 ein Produkt und 3 ein Benutzer ist, oder ein neues Datenattribut vollständig hinzufügen?
Sie können ein Ereignis hinzufügen, um auf das Kontrollkästchen zu klicken und die Funktion auszuführen. Lesen Sie die Options- und Kontrollkästchenwerte. – Cuchu
Ihr jsfiddle funktioniert nicht korrekt für Produkte und Benutzer. – Alko
Warum? Ich teste und arbeite gut! Überprüfen Sie die Konsole und sehen Sie den Filter .. Oder löschen Sie den Cache und versuchen Sie es mit jsfiddle. Du verstehst die Explikation? – Cuchu