JavaScript click event při zpracovaní URL na serveru

ZAJDAN

  • *****
  • 2 083
    • Zobrazit profil
    • E-mail
JavaScript click event při zpracovaní URL na serveru
« kdy: 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
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.


NooN

Re:JavaScript click event při zpracovaní URL na serveru
« Odpověď #1 kdy: 25. 10. 2017, 15:01:08 »
Javascriptom po nacitani dokumentu zobrazit skryty div

opiiio

Re:JavaScript click event při zpracovaní URL na serveru
« Odpověď #2 kdy: 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');
});

ZAJDAN

  • *****
  • 2 083
    • Zobrazit profil
    • E-mail
Re:JavaScript click event při zpracovaní URL na serveru
« Odpověď #3 kdy: 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
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

opiiio

Re:JavaScript click event při zpracovaní URL na serveru
« Odpověď #4 kdy: 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


ZAJDAN

  • *****
  • 2 083
    • Zobrazit profil
    • E-mail
Re:JavaScript click event při zpracovaní URL na serveru
« Odpověď #5 kdy: 25. 10. 2017, 15:24:16 »
...
slo by jako kotvy pouzit id tech jednotlivych divů a na element <a> se vyprdnout ?
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

opiiio

Re:JavaScript click event při zpracovaní URL na serveru
« Odpověď #6 kdy: 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');
});

ZAJDAN

  • *****
  • 2 083
    • Zobrazit profil
    • E-mail
Re:JavaScript click event při zpracovaní URL na serveru
« Odpověď #7 kdy: 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
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

gll

Re:JavaScript click event při zpracovaní URL na serveru
« Odpověď #8 kdy: 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();

ZAJDAN

  • *****
  • 2 083
    • Zobrazit profil
    • E-mail
Re:JavaScript click event při zpracovaní URL na serveru
« Odpověď #9 kdy: 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
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.