Új hozzászólás Aktív témák
-
martonx
veterán
Az, hogy szerinted mi hajtódik végre az ifnél az egy dolog. Az, hogy a Firebug / IE developer / Chrome develop tools (vagy mi a szösz a neve) mi hajtódik végre, na az a lényeg.
És ha már ezt így jól megnézted, akkor tudni fogod a választ is, remélhetőlegÉn kérek elnézést!
-
martonx
veterán
Ugyan ennek már marhára nincs köze a jqueryhez, de a web fejlesztő eszközökkel lehet debugolni a futó javascript kódokat.
Aminek során meg tudod nézni ahogy soronként végrehajtódik a kód, kiértékelődnek a változók, mindent.
Ezt kellene megtenned, megtanulnod, hogy tovább tudj lépni.A javascript fejlesztés nem áll másból, mint szopáshalmokból, jó magasan egymásra púpozva. A webfejlesztő eszközök ezen a kínon enyhítenek valamelyest. A JQuery annyiban könnyíti meg a javascript fejlesztést, hogy az előbb használt képem esetében oszd el az egymásra púpozott szopáshalmokat hárommal
Én kérek elnézést!
-
jeges
senior tag
szia,
én a következőket próbálnám ki:
this helyett $(this)
:eq() helyett .eq() -- beágyazott (úgy értem, a :xxx stílusú) selectorok nem szokták szeretni az ilyen hivatkozásokat, .eq() igen.
ha még mindig nem megy, .each() eljárással próbálkozz. nem feltétlen szükséges, de számomra legalábbis átláthatóbbá válik az aktuális "környezet" (azaz éppen mit jelent a this/$(this) ). aztán ha működik, lehet optimalizálni.valszeg elég lenne valami ilyesmi:
$(".almenu").each(function(){
$(this).bind("click",function(){
$(".leftcontent", ".leftmodule").hide();
$(".leftcontent", ".leftmodule").eq( $(this).index() ).show();
});
});ehhez persze el kell intézni, hogy alapértelmezésben minden leftcontent display:none legyen. én csinálnék egy visible class-t, ami display:block-ot állít, és azt adnám a leftcontent-hez. a fenti így nagyjából úgy nézne ki, hogy
$(".almenu").each(function(){
$(this).bind("click",function(){
$(".leftcontent", ".leftmodule").removeClass("visible");
$(".leftcontent", ".leftmodule").eq( $(this).index() ).addClass("visible");
// esetleg: $(".visible").show();
});
});nem túl optimális a megoldás, de 3-4 gomb esetén nincs érzékelhető különbség.
elnézést, elírás lehet benne még, mer' nem teszteltem...megjegyzés: mindig érdemes minél pontosabb class selectorokat használni, mer' sokat tud lendíteni az oldal performanciáján (lásd $(".leftcontent", ".leftmodule") ). ahol lehet, ott pedig inkább id, az a leggyorsabb.
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
Túlbonyolítod.
Ha azt szeretnéd, hogy az első jelenjen meg, akkor az első "fo" osztályú div leftcontent osztályú gyerekelemének a display tulajdonsága legyen mondjuk display:block, a többi leftcontent mind induljon elrejtett állapotból (display:none).A többihez tartozó kód:
<script type="text/javascript">
$('.almenu').click( function( ){
// ha a testvérelem (.leftcontent) látszik amúgy is, simán eltüntetjük
if( $(this).next().is(":visible") ){
$(this).next().hide(500);
}
else{
$('.leftcontent').hide(500);
$(this).next().show(500);
}
});
</script>Sk8erPeter
-
martonx
veterán
Új hozzászólás Aktív témák
- PHP programozás
- Formula-1
- A fociról könnyedén, egy baráti társaságban
- Luck Dragon: Asszociációs játék. :)
- Villanyszerelés
- Szimpatikusnak tűnik a T Phone új generációja
- Yettel topik
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Autós topik látogatók beszélgetős, offolós topikja
- Mini-ITX
- További aktív témák...
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs