alextizer
@alextizer
увлекаюсь front end (js,html5,css3,bootstra4)

Как сделать правильный цикл?

нужно сделать так чтобы ответ выбранный по клику выполнял условие и каждый раз по циклу было (#answer1, #q2, .error1 и так по i++).
вообщем сделать это все циклом в два столбика.
var x =0;

	$(document).ready(function(){
	 $("#q2, #q3, #q4, #q5").css("display", "none");
	 $(".btn").hide();
	 $("#answer1").on("click",function(){
	 	$("#q2").fadeIn(1500);
	 	$("#answer1").css("background","green");
          for(i=0;i<3;i++) {
    $(this).fadeTo('700', 0.3).fadeTo('700', 1.0);
  	}
	 x+= 100;
	 $(".error1").css("display","none");
	})

	 $(".error1").on("click",function(){
	 	$("#q2").fadeIn(1500);
	 	$("#answer1").css("background","green");
	 	 for(i=0;i<3;i++) {
    $(this).fadeTo('700', 0.3).fadeTo('700', 1.0);
  	}
	 	$(".error1").css("background","red");
})

})
// ...............................................................
// 	 $("#answer2").on("click",function(){
// 	 	$("#q3").fadeIn(1500);
// 	 	$("#answer2 a").css("background","green");
// 	 	          for(i=0;i<3;i++) {
//     $(this).fadeTo('700', 0.3).fadeTo('700', 1.0);
//   	}
// 		x+= 100;
// 		$(".error2").css("display","none");
// 	 })
// 	 $(".error2").on("click",function(){
// 	 	$("#q3").fadeIn(1500);
// 	 	$("#answer2 a").css("background","green");
// 	 	for(i=0;i<3;i++) {
//     $("#answer2").fadeTo('700', 0.3).fadeTo('700', 1.0);
//   	}
// 	 	$(this).css("background","red");
// 	 })
// //....................................................................
// 	 	 $("#answer3").on("click",function(){
// 	 	$("#q4").fadeIn(1500);
// 	 	$("#answer3 a").css("background","green");
// 	 	          for(i=0;i<3;i++) {
//     $(this).fadeTo('700', 0.3).fadeTo('700', 1.0);
//   	}
// 		x+= 100;
// 		$(".error3").css("display","none");
// 	 })
// 	 $(".error3").on("click",function(){
// 	 	$("#q4").fadeIn(1500);
// 	 	$("#answer3 a").css("background","green");
// 	 	for(i=0;i<3;i++) {
//     $("#answer3").fadeTo('700', 0.3).fadeTo('700', 1.0);
//   	}
// 	 	$(this).css("background","red");
// 	 })
// //....................................................................
// 	 	 $("#answer4").on("click",function(){
// 	 	$("#q5").fadeIn(1500);
// 	 	$("#answer4 a").css("background","green");
// 	 	          for(i=0;i<3;i++) {
//     $(this).fadeTo('700', 0.3).fadeTo('700', 1.0);
//   	}
// 		x+= 100;
// 		$(".error4").css("display","none");
// 	 })
// 	 $(".error4").on("click",function(){
// 	 	$("#q5").fadeIn(1500);
// 	 	$("#answer4 a").css("background","green");
// 	 	for(i=0;i<3;i++) {
//     $("#answer4").fadeTo('700', 0.3).fadeTo('700', 1.0);
//   	}
// 	 	$(this).css("background","red");
// 	 })
// //....................................................................
// 	 	 $("#answer5").on("click",function(){
// 	 	$("#answer5 a").css("background","green");
// 	 	          for(i=0;i<3;i++) {
//     $(this).fadeTo('700', 0.3).fadeTo('700', 1.0);
//   	}
// 	 	x+= 100;
// 	 	$(".error5").css("display","none");
// 	 	$(".btn").show("slow");
// 	 	document.getElementById('ball').innerHTML = 'Вы заработали '+x+' очков';
// 	 })
// 	 $(".error5").on("click",function(){
// 	 	$("#answer5 a").css("background","green");
// 	 	for(i=0;i<3;i++) {
//     $("#answer5").fadeTo('700', 0.3).fadeTo('700', 1.0);
//   	}
// 	 	$(this).css("background","red");
// 	 	$(".btn").show("slow");
// 	 	document.getElementById('ball').innerHTML = 'Вы заработали '+x+' очков';
// 	 })
  • Вопрос задан
  • 116 просмотров
Пригласить эксперта
Ответы на вопрос 2
lxsmkv
@lxsmkv
Test automation engineer
у вас "#answer1" ".error1" "#q1" все - строки, создавайте их конкатенацией с индексом, как-то так "#answer"+i.toString(); и.т.д а потом вставляйте в скобки.
Ответ написан
@forspamonly2
вы пытаетесь логику связать с повторяющейся разметкой. это фундаментально неправильный подход.

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

текст текущего вопроса и ответов на него выводить в нужные места разметки, при выборе ответа переходить к следующему.

то есть данные отдельно, отображение отдельно. а там и до mvc недалеко.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы