Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: ZAJDAN 25. 10. 2017, 14:49:32

Název: JavaScript click event při zpracovaní URL na serveru
Přispěvatel: ZAJDAN 25. 10. 2017, 14:49:32
Ahoj...
zrovna resim jeden "problem"
mam html kde je nekolik kontajnerů div, ktere maji attribut display: none a pomocí JS kliknutim na příslušný element <button> menim atrribut display na block(zobrazuji)

jak ale zpracovat url odkazujici na kotvu v kontajneru ktery je defaultne nezobrazen
pokud zakaznik skoci na link:
http://www.neco.cz/nejakaSekce#kotva6
sekce se nezobrazi, protoze nedoslo ke kliknuti na patricny button, ktery vyvola js pro zmenu atributu

díky za tipy
Název: Re:JavaScript click event při zpracovaní URL na serveru
Přispěvatel: NooN 25. 10. 2017, 15:01:08
Javascriptom po nacitani dokumentu zobrazit skryty div
Název: Re:JavaScript click event při zpracovaní URL na serveru
Přispěvatel: opiiio 25. 10. 2017, 15:05:48
Pokud jsou odkazy v textu s kotvou nahodne a nelze na ne napojit click pri renderovani, zbyva napojit click nejlepe pomoci delegate na vsechny tagy A. Pri kliknuti pak kontrolovat, zda closest DIV (kontejner) ma display:none. Mozna ani neni potreba kontrolovat a proste vzdy nastavit display:block. Predpoklada to, ze sekce jsou oznaceny nejakou tridou (.section)

$(body).on('click', 'a', function()
{
  $(this).closest('.section').css('display', 'block');
});
Název: Re:JavaScript click event při zpracovaní URL na serveru
Přispěvatel: ZAJDAN 25. 10. 2017, 15:09:08
Pokud jsou odkazy v textu s kotvou nahodne a nelze na ne napojit click pri renderovani, zbyva napojit click nejlepe pomoci delegate na vsechny tagy A. Pri kliknuti pak kontrolovat, zda closest DIV (kontejner) ma display:none. Mozna ani neni potreba kontrolovat a proste vzdy nastavit display:block. Predpoklada to, ze sekce jsou oznaceny nejakou tridou (.section)

$(body).on('click', 'a', function()
{
  $(this).closest('.section').css('display', 'block');
});
ufff ...zatim mi to hlava nebere, ale zkusim se nad tvou myslenkou dele zamyslet
díky
Název: Re:JavaScript click event při zpracovaní URL na serveru
Přispěvatel: opiiio 25. 10. 2017, 15:12:21
Pokud jsou odkazy v textu s kotvou nahodne a nelze na ne napojit click pri renderovani, zbyva napojit click nejlepe pomoci delegate na vsechny tagy A. Pri kliknuti pak kontrolovat, zda closest DIV (kontejner) ma display:none. Mozna ani neni potreba kontrolovat a proste vzdy nastavit display:block. Predpoklada to, ze sekce jsou oznaceny nejakou tridou (.section)

$(body).on('click', 'a', function()
{
  $(this).closest('.section').css('display', 'block');
});
ufff ...zatim mi to hlava nebere, ale zkusim se nad tvou myslenkou dele zamyslet
díky

to je dobre, protoze je to spatne, jsem to nedomyslel :) jinak.. sekce primo ma nebo obsahuje ten element s id (kotvy), takze

$(body).on('click', 'a', function()
{
  var id = $(this).attr('href').split('#').pop(); // ziskat identifikator elementu z url
  $('#' + id).closest('.section').css('display', 'block'); // dohledat nadrizenou sekci k tomu odkazovane elementu a zobrazit
});

netestoval jsem
Název: Re:JavaScript click event při zpracovaní URL na serveru
Přispěvatel: ZAJDAN 25. 10. 2017, 15:24:16
...
slo by jako kotvy pouzit id tech jednotlivych divů a na element <a> se vyprdnout ?
Název: Re:JavaScript click event při zpracovaní URL na serveru
Přispěvatel: opiiio 25. 10. 2017, 15:36:37
...
slo by jako kotvy pouzit id tech jednotlivych divů a na element <a> se vyprdnout ?

i kdyz bude kotva odkazovat primo na skryty element, tak display se odkazem nezmeni..

ale ten opraveny kod co jsem posilal by mel fungovat, pokud by kotva odkazovala primo na .section element, tak closest funkce jquery jej preskoci, ale staci doplnit radek...

$(body).on('click', 'a', function()
{
  var id = $(this).attr('href').split('#').pop();
  $('#' + id).closest('.section').css('display', 'block');
  $('#' + id + '.section').css('display', 'block');
});
Název: Re:JavaScript click event při zpracovaní URL na serveru
Přispěvatel: ZAJDAN 25. 10. 2017, 15:38:41
diky opilio, ale napadlo me jedno elegantni reseni:
if ( document.URL === 'http://www.neco.cz/fr/products-fr#products-benches')  {
                                                   $("#button-1").click();
                                                  }

pokud by se za provozu objevovali problemy zkusim tvoje reseni
díky
Název: Re:JavaScript click event při zpracovaní URL na serveru
Přispěvatel: gll 25. 10. 2017, 17:09:42
nebylo by jednodussi vzdy zobrazovat podle kotvy v url?

Kód: [Vybrat]
function show() {
    $('#' + location.hash).css('display', 'block'); // nebo zobrazit neco jineho podle potreby
}

$('a').click((e) => show());
show();
Název: Re:JavaScript click event při zpracovaní URL na serveru
Přispěvatel: ZAJDAN 25. 10. 2017, 17:21:46
nebylo by jednodussi vzdy zobrazovat podle kotvy v url?

Kód: [Vybrat]
function show() {
    $('#' + location.hash).css('display', 'block'); // nebo zobrazit neco jineho podle potreby
}

$('a').click((e) => show());
show();
taky pekne reseni ...diky