Autor Zpráva
otakar
Profil *
Zdravím,

potřebuji pomoct a nevím si rady. Po kliknutí na zobrazit potřebuji zobrazit div .opendiv, ale nevím jak zjistit, aby zobrazil pouze ten div, ve kterém kliknu na odkaz Zobrazit.

$('a.view').click(function(){
  
      var link = $(this).attr('href'); 
      var element   =  $(this);
      $.post("/zapis_kliknuti="+link,{     }, function(data, status){            
         $('.button').show(); // - tady mi to ale zobrazi vsechy .buttony....
      }); 
                               
     return false;
    
});

<div class="box" >
  <div class="name" > Skvělá párty </div> 
  <a href='/go/box/dementos' class="view" > Zobrazit button </div> 
  <div class="button" > 
    Opravdu mate takovej hlad?
    <input type='submit' name='send' class='goS'>
  </div>
</div>


<div class="box" >
  <div class="name" > Skvělá párty </div> 
  <a href='/go/box/dementos' class="view" > Zobrazit button </div> 
  <div class="button" > 
    Opravdu mate takovej hlad?
    <input type='submit' name='send' class='goS'>
  </div>
</div>


<div class="box" >
  <div class="name" > Skvělá párty </div> 
  <a href='/go/box/dementos' class="view" > Zobrazit button </div> 
  <div class="button" > 
    Opravdu mate takovej hlad?
    <input type='submit' name='send' class='goS'>
  </div>
</div>


<div class="box" >
  <div class="name" > Skvělá párty </div> 
  <a href='/go/box/dementos' class="view" > Zobrazit button </div> 
  <div class="button" > 
    Opravdu mate takovej hlad?
    <input type='submit' name='send' class='goS'>
  </div>
</div>
Taps
Profil
otakar:
musíš přesně specifikovat button, který se má zobrazit, nejlépe přes id
otakar
Profil *
Určitě se to dá zjistit i jinak.

Já chci zobrazit celý div s názvem .button.

zkoušel jsem find ale nějak mě teď nenapadá jak by to šlo...
Keeehi
Profil
Něco jako
element.parent().find (".button").show();
1Pupik1989
Profil
Máš chybu na 15. řádku, místo element A si ukončil Div.

Pokud budeš mít Div, co se má zobrazit za odkazem, tak můžeš použít metodu next

element.next('.button').show()

Pokud bude hned za odkazem, tak můžeš selektor vynechat.
otakar
Profil *
Zkoušel jsem i

$(this).parent().closest(".button").show();

a nic


<div class="box" >
  <div class="name" > Skvělá párty </div> 
  <div class='gom_link' > <a href='/go/box/dementos' class="view" > Zobrazit button </a> </div> 
  <div class="button" > 
    Opravdu mate takovej hlad?
    <input type='submit' name='send' class='goS'>
  </div>
</div>

Zapoměl jsem tam dopsat div, omlouvám se.
Myslel jsem to takto
roofer
Profil *
$('a.view').click(function(){
  
      var link = $(this).attr('href'); 
      var element   =  $(this);
      $.post("/zapis_kliknuti="+link,{     }, function(data, status){            
         $(this).next('.button').show(); 
      }); 
                               
     return false;
    
});
otakar
Profil *
Taky nefunguje :/
roofer
Profil *
otakar:
Nezobrazí nic nebo všechno?
otakar
Profil *
Právě že nic...post funguje když jsem po něm přidal alert, ale nezobrazí se.

když dám pouze $(.button).show() tak to zobrazí všechmy
Chamurappi
Profil
Reaguji na roofera:
$(this).next('.button').show();
V this uvnitř callback funkce AJAXu už nebude odkaz. Asi jsi chtěl uvést element místo $(this) a i pak by to nefungovalo, pokud má odkaz v něčem obalený, jak píše v příspěvku [#6].


Reaguji na otakara:
Moc jsem nepochopil, k čemu to celé má být. Jaký smysl má, že ten odkaz je odkazem? Když si ho rozkliknu do nového okna, co tam uvidím?
Nevíme, co všechno jsi v uvedeném příkladu kódu ještě osekal a vynechal (podobně jako ten <div>) a zdá se, že i drobné opravy jsou nad tvé síly, takže nemá smysl šít kód na míru nějakému polotovaru. Doporučuji popsat ucelenější zadání.

Zkoušel jsem i $(this).parent().closest(".button").show();
Název funkce closest trochu lže, hledá v předcích (rodičích, rodičích rodičů atd.). Takže bys mohl hledat třeba nejbližší ".box" a v něm pak findem něco… třeba.
Keeehi
Profil
otakar:
Ten parent tam musí být 2x, protože je více zanořené, než jsem si předtím všiml. A nebo i jinak s tím nextem.
roofer
Profil *
To Chamurappi:

Máš pravdu, jak jsem to kopíroval, odmazal jsem levou stranu, zůstalo tam this, což opravdu po Ajaxovém načtení nemůže zafungovat.
V úvodním přispěvku je jen odkaz, až když jsi mě upozornil, uviděl jsem, že tam je ještě div, který to obaluje. Moje nepozornost.
1Pupik1989
Profil
Přesně jako píše [#12] Keeehi v ukázce. Napsal bych:
element.parent().next('.button'); nebo element.parent().next();

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: