Member 12789067 Ответов: 2

Мой javascript скрывается но не переходит к следующему вопросу q2 его вероятно из за моей функции процесса но я не знаю что с ним не так


var score = 0; //count


function init(){
	//goede antwoorden
	sessionStorage.setItem('a1','a');
	sessionStorage.setItem('a2','a');
	sessionStorage.setItem('a3','a');
	sessionStorage.setItem('a4','a');
	sessionStorage.setItem('a5','a');
	sessionStorage.setItem('a6','a');
	sessionStorage.setItem('a7','a');
	sessionStorage.setItem('a8','a');
	sessionStorage.setItem('a9','a');
	sessionStorage.setItem('a10','a');
}

$(document).ready(function(){
	//Verstop alle vragen
	$('.questionForm').hide();
	
	//laat eerste vraag zien
	$('#q1').show();
	
	$('#q1 #submit').click(function(){
		$('.questionForm').hide();
		process('q1');
		$('#q2').show();
		return false;
	});
	
	$('#q2 #submit').click(function(){
		$('.questionForm').hide();
		process('q2');
		$('#q3').show();
		return false;
	});
	
	$('#q3 #submit').click(function(){
		$('.questionForm').hide();
		process('q3');
		$('#q4').show();
		return false;
	});
	
	$('#q4 #submit').click(function(){
		$('.questionForm').hide();
		process('q4');
		$('#q5').show();
		return false;
	});
	
	$('#q5 #submit').click(function(){
		$('.questionForm').hide();
		process('q5');
		$('#q6').show();
		return false;
	});
	
	$('#q6 #submit').click(function(){
		$('.questionForm').hide();
		process('q6');
		$('#q7').show();
		return false;
	});
	
	$('#q7 #submit').click(function(){
		$('.questionForm').hide();
		process('q7');
		$('#q8').show();
		return false;
	});
	
	$('#q8 #submit').click(function(){
		$('.questionForm').hide();
		process('q8');
		$('#q9').show();
		return false;
	});
	
	$('#q9 #submit').click(function(){
		$('.questionForm').hide();
		process('q9');
		$('#q10').show();
		return false;
	});
	
	$('#q10 #submit').click(function(){
		$('.questionForm').hide();
		process('q10');
		$('#results2').show();
		return false;
	});
});

function process(q){
	if(q == "q1"){
		var submitted1 = $('input[name=q1]:checked').val();
		if(submitted1 == sessionStorage.a1){
			score++;
		}
		else{
			$('#results').html('<h3>Je hebt niet de bevoegdheid om deze opleiding te starten.</h3><a href="quiz.html">Doe de quiz opnieuw</a>');	
		}
	}
	if(q == "q2"){
		var submitted2 = $('input[name=q2]:checked').val();
		if(submitted2 == sessionStorage.a2){
			score++;
		}
	}
	if(q == "q3"){
		var submitted3 = $('input[name=q3]:checked').val();
		if(submitted3 == sessionStorage.a3){
			score++;
		}
	}
	if(q == "q4"){
		var submitted4 = $('input[name=q4]:checked').val();
		if(submitted4 == sessionStorage.a4){
			score++;
		}
	}
	if(q == "q5"){
		var submitted5 = $('input[name=q5]:checked').val();
		if(submitted5 == sessionStorage.a5){
			score++;
		}
	}
	if(q == "q6"){
		var submitted6 = $('input[name=q6]:checked').val();
		if(submitted6 == sessionStorage.a6){
			score++;
		}
	}
	if(q == "q7"){
		var submitted7 = $('input[name=q7]:checked').val();
		if(submitted7 == sessionStorage.a7){
			score++;
		}
	}
	if(q == "q8"){
		var submitted8 = $('input[name=q8]:checked').val();
		if(submitted8 == sessionStorage.a8){
			score++;
		}
	}
	if(q == "q9"){
		var submitted9 = $('input[name=q9]:checked').val();
		if(submitted9 == sessionStorage.a9){
			score++;
		}
	}
	if(q == "q10"){
		var submitted10 = $('input[name=q10]:checked').val();
		if(submitted10 == sessionStorage.a10){
			score++;
			if(score > 7){
				$('#results').html('<h3>Deze opleiding zou voor jouw de goeie keuzen kunnen zijn.</h3><a href="quiz.html">Doe de quiz opnieuw</a>');
			}
			else{
				$('#results').html('<h3>Misschien moet je toch naar een andere opleiding zoeken.</h3><a href="quiz.html">Doe de quiz opnieuw</a>');	
			}
		}
	return false;
	}
	
}
window.addEventListener('load',init,false);


Что я уже пробовал:

Я пробовал искать ответы на других сайтах.
Я пробовал форматировать
Я пытался задавать вопросы

OriginalGriff

"Почему мой java-скрипт не работает"
Как вы думаете, что мы узнаем, когда мы понятия не имеем, что вы ожидаете от него, не говоря уже о том, чтобы запустить его и выяснить?

Это не очень хороший вопрос - мы не можем понять из этого малого, что вы пытаетесь сделать.
Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли.
Итак, расскажите нам, что он делает, чего вы не ожидали, или не делает, что вы сделали. Скажи нам, что ты хотел, чтобы он сделал, скажи нам, что он сделал. Расскажите нам, какие данные вы ему передаете, расскажите, что вы пробовали, чтобы узнать, что может произойти , - и я не имею в виду "я разместил это здесь и здесь, но мне никто ничего не сказал". Расскажите нам, что вы сделали для тестирования и отладки кода!
Используйте виджет" улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.

F-ES Sitecore

"Не работает" не имеет технического значения, поэтому мы не знаем, в чем ваша проблема.

Suvendu Shekhar Giri

Отладьте и найдите соответствующие строки кода... затем попытайтесь понять, почему эта часть не работает.. затем, если вы все еще не найдете ключа к разгадке, вернитесь сюда и дайте нам знать с этим фрагментом кода и хорошим описанием. Совместное использование всего кода не поможет нам понять вашу проблему.

2 Ответов

Рейтинг:
2

Peter Leow

Прежде всего, ваша проблема начинается, когда вы пытаетесь скрыть целое.questionForm, а затем пытается показать своих детей #q1, #q2, ... один за другим. Вы не можете показать детям, когда их родитель скрыт. Верно? Вместо этого вы должны скрыть детей отдельно, чтобы можно было переключать их состояние отображения по отдельности. Оставь их родителей в покое.

$(document).ready(function() {
	$('.questionForm').contents().hide();

	$('#q1').show();
	
	// Your other code
})

Далее, вы используете jQuery и все же не полностью используете его преимущество "пиши меньше, делай больше". Приведенный выше код jQuery
$('.questionForm').contents()

то, что скрывает всех отдельных детей без необходимости повторять один и тот же код, чтобы скрыть каждого ребенка, является таким преимуществом.
Поскольку вы используете jQuery, нет необходимости запускать его
init()
в
window.addEventListener('load',init,false);

отдельно, просто положите его внутрь
$(document).ready() function

Учить $ (документ). готово()[^]
И последнее, но не менее важное: знаете ли вы, что вы повторяете один и тот же код, который выполняет одни и те же задачи, хотя и с разными параметрами повсюду? Как вы собираетесь справиться, если эта программа должна обрабатывать 100 вопросов со 100 вопросами? Существует очень важная конструкция во всех языках программирования, Петля[^] или . each () / jQuery API документация[^]
У вас впереди долгий путь обучения, пусть он начнется прямо сейчас...


Рейтинг:
1

Patrice T

В вашем браузере есть отладчик для JS, используйте его, чтобы увидеть, что делает ваш код.

Вы должны научиться использовать отладчик как можно скорее. Вместо того чтобы гадать, что делает ваш код, пришло время увидеть, как он выполняется, и убедиться, что он делает то, что вы ожидаете.

Отладчик позволяет вам следить за выполнением строка за строкой, проверять переменные, и вы увидите, что есть точка, в которой он перестает делать то, что вы ожидаете.
Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.