Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: Opakování

JavaScript JavaScript Opakování

Aktivity (1)
Avatar
wimpy
Člen
Avatar
wimpy:18.5.2014 12:49

Ahoj, poradil by mi někdo techniku, jak v následujícím příkladě použít cyklus for. Cílem je 5x zopakovat zadání a vyhodnocení příkladu. Předem děkuji za radu či odkaz. Viz http://www.wimpy.dukla166.cz/pocitani/.

var zadej_priklad = function()
{
    var sc1 = Math.round(100*Math.random());
    var sc2 = Math.round(100*Math.random());
    soucet = sc1 + sc2;
    var priklad = sc1 + " + " + sc2 + " = " + "<input type=\"text\" id=\"tip\" size=\"5\" /> <input type=\"button\" id=\"kontrola\" value=\"Zkontroluj!\">";
    $('#priklad').append(priklad);
    $("#kontrola").click(kontroluj);
};

var kontroluj = function()
{
        if ($("#tip").val() == soucet) {var obr = "<img src=\"ok.png\"> <br>"}
         else {var obr = "<img src=\"chyba.png\"> <br>"};
          $('#priklad').append(obr);
};

var pocatecni_nastaveni = function()
{
      zadej_priklad();
};

$(document).ready(pocatecni_nastaveni);
 
Odpovědět 18.5.2014 12:49
Avatar
wimpy
Člen
Avatar
wimpy:18.5.2014 17:37

Už v pohodě, pomohl kamarád po mailu. Díky

 
Nahoru Odpovědět 18.5.2014 17:37
Avatar
Bogdan
Redaktor
Avatar
Bogdan:18.5.2014 17:40

Tak napiš jak to ma být, možna někdo bude mít stejný problem. ;)

Editováno 18.5.2014 17:41
 
Nahoru Odpovědět 18.5.2014 17:40
Avatar
wimpy
Člen
Avatar
wimpy:18.5.2014 22:02
var celkovyPocetPokusu = 5;
var pocetPokusu = celkovyPocetPokusu;
var pocetSpravne = 0;
var idClicker = 0;

function klasifikace(){
  $('#container').text('Z celkového počtu pokusů '+ pocetPokusu + ' jste měli ' + pocetSpravne + ' správně');

}

var zadej_priklad = function()
{
    idClicker++;
    var sc1 = Math.round(100*Math.random());
    var sc2 = Math.round(100*Math.random());
    var priklad ="<div class='prikladek' data-tip='test'>"+sc1 + " + " + sc2 + " = <input type=\"text\" class='tipecek' id=\"tip\" size=\"5\"><button id='"+ idClicker + "' data-second=\""+sc2+"\" data-first=\""+sc1+"\" class=\"kontrola\" value=\"Zkontroluj!\">Pocitej</button><br></div>" ;
    $('#priklad').append(priklad);
    setClicks(idClicker);
};


function setClicks(idClicker){

   $("#"+idClicker).click(function(){
        if(celkovyPocetPokusu == 1){
          klasifikace();
          return;
        }
         celkovyPocetPokusu--;
        $('.pocetPokusu').text('Zbývá pokusů: ' + celkovyPocetPokusu);
        var first = $(this).attr('data-first');
        var second = $(this).attr('data-second');
        var tip = $(this).parent().attr('data-tip');
        obr = kontroluj(first,second,tip);
        $(this).parent().append(obr);
        if(tip == parseInt(first) + parseInt(second))
          zadej_priklad();

    });
     $('.tipecek').keyup(function(){
        $(this).parent().attr('data-tip',$(this).val());
      });
}



 function kontroluj(first,second,tip)
{

         if (tip == parseInt(first) + parseInt(second) ) {
           var obr = "<img src=\"ok.png\">";

          pocetSpravne++;
        }
         else {
          var obr = "<img src=\"chyba.png\">";


           };
        return obr;

};

var pocatecni_nastaveni = function()
{

      zadej_priklad();
       setClicks();

};

$(document).ready(pocatecni_nastaveni);
 
Nahoru Odpovědět 18.5.2014 22:02
Avatar
wimpy
Člen
Avatar
wimpy:18.5.2014 22:25

A jednodušeji:

var idCislo = 0;

var zadej_priklad = function()
{
    idCislo++;
    var sc1 = Math.round(100*Math.random());
    var sc2 = Math.round(100*Math.random());
    soucet = sc1 + sc2;
    idTip = "tip"+idCislo;
    idKontrola = "kontrola"+idCislo;
    var priklad = sc1 + " + " + sc2 + " = " + "<input type=\"text\" id='"+idTip+"' size=\"5\" /> <input type=\"button\" id='"+idKontrola+"' value=\"Zkontroluj!\">";
    $("#priklad").append(priklad);
    $("#"+idKontrola).click(kontroluj);
};

var kontroluj = function()
{
        if ($("#"+idTip).val() == soucet) {var obr = "<img src=\"ok.png\"> <br>"}
         else {var obr = "<img src=\"chyba.png\"> <br>"};
        $('#priklad').append(obr);
        $("#"+idKontrola).unbind("click");
        if (idCislo == 4) {
           $('#priklad').append("Konec");
           return;
        };
        zadej_priklad();
};

var pocatecni_nastaveni = function()
{
      zadej_priklad();
};

$(document).ready(pocatecni_nastaveni);
 
Nahoru Odpovědět 18.5.2014 22:25
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.