NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Nejde mi aby to akceptovalo 5 odkaz

V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.

Jak se ti líbí článek?
Před uložením hodnocení, popiš prosím autorovi, co je špatněZnaků 0 z 50-500
Jak se ti kurz líbí?
Tvé hodnocení kurzuZnaků 0 z 50-500
Aktivity
Avatar
Hana
Člen
Avatar
Hana:30.12.2024 12:26

Chtěla bych poprosit o radu trápím se stým už měsíc a ten co to psal už neodepisuje takže asi na mě nemá čas nebo nevím ...

Nechala jsem si udělala v šabloně po kliknutí otevíraní 4 odkazů jsou to 4 soubory ty sem myslím předělala dobře ale (.js) si myslím že mám někde chybu .

přepsala a dodala jsem

const axd4 = document.getElementById("clickfakeplayer4");

pak tohle

if(axd3 != null)
{
    axd3.addEventListener("click", () => {
        axd3.style.setProperty("display", "none")
        axd4.style.setProperty("display", "block")
    });
}

a tohle sem vydedukovala že by mělo být

axd3.style.setProperty("display", "none")
axd4.style.setProperty("display", "block"

3 a 4 axd

takto sem změnila kod

const axd1 = document.getElementById("clickfakeplayer1");
const axd2 = document.getElementById("clickfakeplayer2");
const axd3 = document.getElementById("clickfakeplayer3");
const axd4 = document.getElementById("clickfakeplayer4");
const axdlast = document.getElementById("clickfakeplayerlast");


if(axd1 != null)
{
    axd1.addEventListener("click", () => {
        axd1.style.setProperty("display", "none")

        if(axd2 != null)
        {
            axd2.style.setProperty("display", "block")
        }
        else
        {
            axdlast.style.setProperty("display", "block")
        }
    });
}

if(axd2 != null)
{
    axd2.addEventListener("click", () => {
        axd2.style.setProperty("display", "none")
        axd3.style.setProperty("display", "block")
    });
}


if(axd3 != null)
{
    axd3.addEventListener("click", () => {
        axd3.style.setProperty("display", "none")
        axd4.style.setProperty("display", "block")
    });
}

if(axd4 != null)
{
    axd4.addEventListener("click", () => {
        axd4.style.setProperty("display", "none")
        axdlast.style.setProperty("display", "block")
    });
}

if(axdlast != null)
{
    axdlast.addEventListener("click", () => {
        axdlast.style.setProperty("display", "none")
        // document.getElementById("fakeplayer").style.setProperty("display", "none")
    });
}

Original je takto

const axd1 = document.getElementById("clickfakeplayer1");
const axd2 = document.getElementById("clickfakeplayer2");
const axd3 = document.getElementById("clickfakeplayer3");
const axdlast = document.getElementById("clickfakeplayerlast");


if(axd1 != null)
{
    axd1.addEventListener("click", () => {
        axd1.style.setProperty("display", "none")

        if(axd2 != null)
        {
            axd2.style.setProperty("display", "block")
        }
        else
        {
            axdlast.style.setProperty("display", "block")
        }
    });
}

if(axd2 != null)
{
    axd2.addEventListener("click", () => {
        axd2.style.setProperty("display", "none")
        axd3.style.setProperty("display", "block")
    });
}


if(axd3 != null)
{
    axd3.addEventListener("click", () => {
        axd3.style.setProperty("display", "none")
        axdlast.style.setProperty("display", "block")
    });
}



if(axdlast != null)
{
    axdlast.addEventListener("click", () => {
        axdlast.style.setProperty("display", "none")
        // document.getElementById("fakeplayer").style.setProperty("display", "none")
    });
}

Ten co to dělal mi už neodpovídá a nereaguje tak bych chtěla poprosit o radu zde

Zkusil jsem: zkoušela jsem hledat na google.com ale nic jsem nenašla , samozřejmě různě přepisovat kód ale nějak se mi nedaří

Chci docílit: chtěla bych aby jsem tam přidala další kliknutí teď tam jsou 4 a já bych potřebovala 5

 
Odpovědět
30.12.2024 12:26
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:31.12.2024 20:31

Proc nepouzijes pole?

var adx,count;
adx = [];
name = "clickfakeplayer1";  count = adx.push(document.getElementById(name))
name = "clickfakeplayer2";  count = adx.push(document.getElementById(name))
name = "clickfakeplayer3";  count = adx.push(document.getElementById(name))
last = count - 1;

A ten dalsi kod je cely divny. Mas adx[0] a pri clicku pracujes s adx[0] a adx[1] a adx[last], ale u lastu se neptas zda existuje ci ne. Ladis JS pomoci JS konzoly? Firefox - (ctrl+shif+i) neboli Nastroje > Nastroje prohlizece > Nastroje pro webove vyvojare - a tam i pak rozkliknout zalozku konzola
U axd1 pracujes s axd1, axd2, axdlast. ifem overis existenci 1, 2, ale last nikoliv. A totez delas v tech ostatnich.
U axd2 pracujes s axd2 a axd3, ale existenci 3 si uz neoverujes.

Otazkou je, jak by to melo spravne fungovat? Pokud se ma zobrazit vzdy jen jedna adx, tak by bylo vhodne ostatni zavrit, pokud nahodou jsou zobrazene a pak otevrit tu nasledujici.
A podle js konzoly mozna najdes nejake chyby, proc to nejede a na kterem radku mu neco vadi. Se mi nechce ted zkouset.

 
Nahoru Odpovědět
31.12.2024 20:31
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:6. ledna 11:12

...aby jako nedoslo k omylu, forko funguje na principu postav si sam s nejakou tou radou do zacatku. Nekteri totiz uvazuji tak, zadarmo mi postavte dum. Ze se ti nekdo neozyva neznamena, ze problem by mel resit nekdo jiny zadarmo, jen z dobroty srdce a pripravit tak manzelku o jidlo nebo dum, pac nebude na hypoteku :)

Tohle funguje tak, ze... zavri vse + najdi prvni existujici, najdi dalsi existujici a ten otevri. pokud nenajde nic, neotevre nic. Ale muzou tam byt chyby, pisi to bez testovani. A jen se domnivam, ze tak nejak ti funguje ten puvodni kod.

var pos;
var adx_list = [
        "clickfakeplayer1",
        "clickfakeplayer2",
        "clickfakeplayer3"
        ];

function adxOpen(el) {el.style.display = "block";}
function adxClose(el) {el.style.display = "none";}

function adxElemAll(list)
{
var i, i_end = list.length, el;
for (i=0; i<i_end; i++)
        {
        el = document.getElementById(list[i]);
        list[i] = el;
        }
}

function adxCloseAll(list)
{
var i, i_end = list.length;
for (i=0; i<i_end; i++)
        {
        if (list[i]) adxClose(list[i]);
        }
}

function adxFindNext(list, pos)
{
var i, i_end = list.length;
for (i=pos; i<i_end; i++)
        {
        if (list[i]) return i;
        }
return false;
}

adx_list = adxElemAll(adx_list);
adxCloseAll(adx_list);
pos = adxFindNext(adx_list, 0);
pos = adxFindNext(adx_list, pos);
if (pos) adxOpen(adx_list[pos]);
 
Nahoru Odpovědět
6. ledna 11:12
Avatar
Hana
Člen
Avatar
Odpovídá na Peter Mlich
Hana:6. ledna 11:58

Díky za reakci nakonec to bylo jinde ale tohle rosení testu také vypadá to dobře

 
Nahoru Odpovědět
6. ledna 11:58
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 4 zpráv z 4.