Ich versuche, Kontrollkästchen-Filter zu erstellen, die auf meiner Seite Boxen auf ihrer ID anzeigen oder ausblenden. Ich bin sehr neu in jQuery, aber ich habe eine Weile damit herumgespielt und kann die Boxen nicht zum verstecken/anzeigen bringen. Bitte beachten Sie meinen Code unten. Vielen Dank!Filter mit Checkboxen w. Jquery
Sport Modell
class Sport(models.Model):
name = models.CharField(max_length=128)
Snippet von HTML zu filtern
{% for game in game_list %}
{% if game.sport = sport %}
<div class="col-xs-12 col-sm-12 col-lg-12">
<section id="{{ sport.name }}" class="box pick-game">
<div class="box box-content">
<div class="game-bet-header">
<div class="row">
<div class="col-md-3">
<h4 class="game-date"> {{ game.time|time }} - {{ game.time|date:"M-d" }}</h4>
</div>
<div class="col-md-6">
<h4 class="game-title">{{ game.team1 }} vs {{ game.team2 }} </h4>
</div>
</div>
</div>
HTML Ankreuzfelder zu verwenden als Filter
<div class="sport-sidebar">
<section class="sports-box">
{% for sport in sports %}
<div id="sport-filter" class="sport-name">
<label for="filter-{{ sport.name }}"><input type="checkbox" class="sport" value="{{ sport.name }}" id="filter-{{ sport.name }}">{{ sport.name }}</label>
</div>
{% endfor %}
</section>
</div>
JQuery
$('#sport-filter input:checkbox').click(function() {
$('#sport-filter input:checkbox:checked').each(function() {
$("#" +$(this).val()).show()
});
});
Bitte helfen Sie mit Vorschlägen zur Lösung dieses Problems! Vielen Dank
Aktualisiert Javascript auf 9/20, aber immer noch nicht funktioniert
Bitte siehe unten aktualisiert Javascript. Das Initialisieren mit .hide() funktioniert nicht, aber wenn ich die ID jedes Sports manuell anzeige, wird nichts im CSS angezeigt. Das lässt mich glauben, dass .show und .hide nicht funktionieren oder dass sie meine Klasse nicht korrekt erfassen. Ich habe meiner Checkbox im JavaScript auch eine Klasse hinzugefügt, um sie von den anderen zu unterscheiden.
$("#mlb-pick").hide();
$("#nfl-pick").hide();
$(".sport-sidebar input[type=checkbox]").on('click', function() {
var thisval = $(this).val();
if ($(this).prop('checked')){
$('#' + thisval+"-pick").show();
}
else{
$('#' + thisval).hide();
}
});
Ich kann Ihr Code-Snippet nicht ausgeführt, aber es scheint, dass Ihr Fehler auf dem "jeder" Methode. Beachten Sie, dass Sie '.each (Funktion (Index, Element) {$ (Element) .show()})' –
irgendwelche Vorschläge ausführen können, wie zu beheben? –