So habe ich zwei Probleme hierJQuery wenn kehrt immer falsch
- Die if welcher prüft diese
$isitchecked = $('#group' + groupnumber).hasClass("checked");
kehrt immer falsch, auch wenn die Klasse, die Klasse hat „geprüft“ - obwohl die Group icrements es funktioniert immer noch nur mit der ersten Gruppe.
var progressProcent = 0;
var groupnumber = 1;
$('#group' + groupnumber + ' input[type="radio"]').click(function(){
$whatgroup = "#group" + groupnumber;
$isitchecked = $('#group' + groupnumber).hasClass("checked");
if ($isitchecked) {
}else{
progressProcent = progressProcent + 2.27272727;
}
$("#progress-container").removeClass("hide");
$($whatgroup).addClass("checked");
$("#progress-bar").css('width', progressProcent + '%');
groupnumber = groupnumber + 1;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div class="question form-group">
<h3>Question 1</h3>
<fieldset class="test-field pull-left" id="group1">
<input type="radio" name="q1" id="q1option1" class="left" value="-3">
<input type="radio" name="q1" id="q1option2" class="left" value="-2">
<input type="radio" name="q1" id="q1option3" class="left" value="-1">
<input type="radio" name="q1" id="q1neotral1" value="0">
<input type="radio" name="q1" id="q1option1r" class="right" value="1">
<input type="radio" name="q1" id="q1option2r" class="right" value="2">
<input type="radio" name="q1" id="q1option3r" class="right" value="3">
</fieldset>
</div>
<br>
<div class="question form-group">
<h3>Question 2</h3>
<fieldset class="test-field pull-left" id="group2">
<input type="radio" name="q2" id="q2option1" class="left" value="-3">
<input type="radio" name="q2" id="q2option2" class="left" value="-2">
<input type="radio" name="q2" id="q2option3" class="left" value="-1">
<input type="radio" name="q2" id="q2neotral1" value="0">
<input type="radio" name="q2" id="q2option1r" class="right" value="1">
<input type="radio" name="q2" id="q2option2r" class="right" value="2">
<input type="radio" name="q2" id="q2option3r" class="right" value="3">
</fieldset>
</div>
<br />
<br />
<div class="progress-container" id="progress-container">
<div class="progress">
<div class="progress-bar progress-bar-striped active" id="progress-bar" role="progressbar" aria-valuenow="45" aria-valuemin="0" aria-valuemax="100" >
</div>
</div>
</div>
Vergessen Sie Ihren jQuery-Code. Was genau willst du erreichen, kannst du das erklären? (Erkläre in Frage) –
Du bringst nur das 'click' Ereignis auf' # group1 input [type = "radio"] ', nicht auf irgendein anderes Element. –
Immer wenn ich eine Frage mit 44 beantworte, sollte sich der Fortschrittsbalken verschieben oder 2,27272727 hinzufügen, aber wenn ich meine Meinung zu einer Frage ändere, sollte der Fortschrittsbard nichts hinzufügen, weil ich diesen Block schon gecheckt (geantwortet) habe. Ist das sinnvoll? – key