Zdravím, mám menší problém
mám tento kód
$(function(){
$('.toggle').show();
$('div.obsah-nav-zobrazit').toggle(function(){
$('.toggle').slideDown("slow");
$('#skryt').attr("src","img/icony/minus.gif" );
},function(){
$('.toggle').slideUp("slow");
$('#skryt').attr("src", "img/icony/plus.gif" );
});
});
a ted, pokaždé, když položku skryju, tak se změní ikona, jde o plus a mínus. Jen
mě trápí jediná věc a to ta, že bych potřeboval, aby se skrývaly jednotlivé
elementy, takto se skryjou všechny elementy.
Nevěděl by někdo, jak na to?
Děkuju
Fórum › JavaScript, AJAX, jQuery
AJAX toggle
Dobře, jinak ještě jednou AJAX skript je tady:
$(function(){
$('.toggle').show();
$('div.obsah-nav-zobrazit').toggle(function(){
$('.toggle').slideDown("slow");
$('.skryt').attr("src","img/icony/minus.gif" );
},function(){
$('.toggle').slideUp("slow");
$('.skryt').attr("src", "img/icony/plus.gif" );
});
});
A HTML:
<div class="obsah-nabidka">
<div class="obsah-nav">
<div class="obsah-nav-nazev">Něco 1</div>
<div class="obsah-nav-zobrazit"><img src="img/icony/minus.gif" class="skryt" /></div>
</div>
</div>
<div class="obsah-nabidka">
<div class="obsah-nav">
<div class="obsah-nav-nazev">Něco 2</div>
<div class="obsah-nav-zobrazit"><img src="img/icony/minus.gif" class="skryt" /></div>
</div>
</div>
<div class="obsah-nabidka">
<div class="obsah-nav">
<div class="obsah-nav-nazev">Něco 2</div>
<div class="obsah-nav-zobrazit"><img src="img/icony/minus.gif" class="skryt" /></div>
</div>
</div>
Díky :-)
No tak jQuery moc nepoužívam - väčšinou mi stačí čistý JS. Ale povedal by som, že namiesto skrývania všetkých elementov pomocou tried by si mal použiť this. V jQuery je tuším vždy mapovaný na aktuálny element. Hentak pracuješ s celou kolekciou elementov v danej triede.
Už se v tom začínám ztrácet. Zkouším to a zkouším. Zatímco plus a mínus se mění jednotlivě pomocí this, tak nemůžu udělat, aby se ten element skryl, asi to dělám blbě. Dumám nad tím celý den, tak už se opět obracím sem. Moc se omlouvám, za tyto stupidní otázky, ale hrozně moc mi to pomůže
$(function(){
$('.toggle').show();
$('.skryt').toggle(function(){
$(this).attr("src","img/icony/minus.gif" ).children('.toggle').slideDown("slow");
return false;
},function(){
$(this).attr("src", "img/icony/plus.gif" ).children('.toggle').slideUp("slow");
return false;
});
});
Promin, zapomněl jsem to tam dopsat:
<div class="obsah-nabidka">
<div class="obsah-nav">
<div class="obsah-nav-nazev">Něco 1</div>
<div class="obsah-nav-zobrazit"><img src="img/icony/minus.gif" class="skryt" /></div>
</div>
</div>
<div class="toggle">
<p>text</p>
</div>
<div class="obsah-nabidka">
<div class="obsah-nav">
<div class="obsah-nav-nazev">Něco 2</div>
<div class="obsah-nav-zobrazit"><img src="img/icony/minus.gif" class="skryt" /></div>
</div>
</div>
<div class="toggle">
<p>text</p>
</div>
<div class="obsah-nabidka">
<div class="obsah-nav">
<div class="obsah-nav-nazev">Něco 3</div>
<div class="obsah-nav-zobrazit"><img src="img/icony/minus.gif" class="skryt" /></div>
</div>
</div>
<div class="toggle">
<p>text</p>
</div>
Mohl bych tě poprosit, jak mám tedy použít tu metodu children()?
Děkuji
No udělat každému bloku obalový div...nějak takhle:
<div class="wrapper">
<div class="obsah-nabidka">
<div class="obsah-nav">
<div class="obsah-nav-nazev">Něco 2</div>
<div class="obsah-nav-zobrazit"><img src="img/icony/minus.gif" class="skryt" /></div>
</div>
</div>
<div class="toggle">
<p>text</p>
</div>
</div>
Pak si v rámci něj můžeš pohrát s metodami .parent() a .children()
$('div.obsah-nav-zobrazit).click(function() {
$(this).attr('src','img/icony/minus.gif');
$(this).parent().parent().parent().children('div.toggle:hidden').slideDown('fast');
});
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Jquery animate toggle v Javascripte — založil Koder
Přepínací tlačítko (toggle) v HTML — založil stevo1
Help! - Ajax — založil Jenda_CZ
Moderátoři diskuze