Autor | Zpráva | ||
---|---|---|---|
Retentive Profil * |
#1 · Zasláno: 6. 8. 2014, 22:18:00 · Upravil/a: Retentive
Dobrý den, v jquery jsem začátečník a tvořím si svůj slider, jenže problém nastal jak chci zjistit, který element má určité id. Zjistí se mi to vždy jen při načtení stránky a tak už se to bere napořád. Potřeboval bych nějakou funkci, která se při kliknutí na jeden element zjistí, jestli má tento prvek určité id. Prostě jak můžu zjistit jestli má prvek určité id už po načtení stránky?
Retentive: Nebo jinak, jak bych se mohl posouvat v ul li nebo v poli a zjišťovat na jaké jsem pozici v poli? |
||
Joker Profil |
#2 · Zasláno: 6. 8. 2014, 23:15:05
Retentive:
„Prostě jak můžu zjistit jestli má prvek určité id už po načtení stránky?“ Um, porovnáním? prvek.id == "něco" událost.target .
Ale obsluha událostí se obvykle dělá obráceně, místo abych zjišťoval kam se kliklo dám obsluhu kliknutí na ten prvek na který se má klikat. |
||
Retentive Profil * |
#3 · Zasláno: 6. 8. 2014, 23:23:14
Joker:
Rozepíšu, asi jsi mě nepochopil.:/ Tvořím slider, má tři části dvě šipky, jedná posouvá doleva a druhá doprava a já potřebuju při běhu zjistit, který prvek má určité id. Kliknu doprava a slider posune na prostřední část a přiřadí se prostřední části určité id, no a jak mohu zjišťovat které část má určité id vždy po kliknutí na nějakou šipku, tak aby se mohlo v klidu ve slideru procházet. Mi šlo zjisti vždy jen po načtení, který prvek má danné id a pak už ne. Prostě potřebuju po kliknutí na šipku znovu přeměnit proměnnou, která obsahuje, hodnotu id. Porovnávám to nějak takto: var aktivniAlbum1 = $(".photography .poPhotography section .fotky .albumy1").attr("id"); if (aktivniAlbum1 == "aktivniAlbumy") { $(".photography .poPhotography section .fotky .rozhrani1").click(function() { $(".photography .poPhotography section .tlacitka li, .photography .poPhotography section .fotky ul, .photography .poPhotography section .fotky ol").removeAttr('id'); $(".photography .poPhotography section .tlacitka li:nth-child(3)").attr('id', 'aktivniAlbum'); $(".photography .poPhotography section .fotky .albumy3").attr('id', 'aktivniAlbumy').animate({opacity: 1}, 500); $(".photography .poPhotography section .fotky .popisAlbumy3").attr('id', 'aktivniPopisAlbumy').animate({opacity: 1}, 500); $(".photography .poPhotography section .fotky .albumy1, .photography .poPhotography section .fotky .albumy2, .photography .poPhotography section .fotky .popisAlbumy1, .photography .poPhotography section .fotky .popisAlbumy2").animate({opacity: 0}, 500); setTimeout(function(){ $(".photography .poPhotography section .fotky .albumy1, .photography .poPhotography section .fotky .albumy2, .photography .poPhotography section .fotky .popisAlbumy1, .photography .poPhotography section .fotky .popisAlbumy2").attr('id', 'neaktivniAlbum'); }, 500); }); $(".photography .poPhotography section .fotky .rozhrani2").click(function() { $(".photography .poPhotography section .tlacitka li, .photography .poPhotography section .fotky ul, .photography .poPhotography section .fotky ol").removeAttr('id'); $(".photography .poPhotography section .tlacitka li:nth-child(2)").attr('id', 'aktivniAlbum'); $(".photography .poPhotography section .fotky .albumy2").attr('id', 'aktivniAlbumy').animate({opacity: 1}, 500); $(".photography .poPhotography section .fotky .popisAlbumy2").attr('id', 'aktivniPopisAlbumy').animate({opacity: 1}, 500); $(".photography .poPhotography section .fotky .albumy1, .photography .poPhotography section .fotky .albumy3, .photography .poPhotography section .fotky .popisAlbumy1, .photography .poPhotography section .fotky .popisAlbumy3").animate({opacity: 0}, 500); setTimeout(function(){ $(".photography .poPhotography section .fotky .albumy1, .photography .poPhotography section .fotky .albumy3, .photography .poPhotography section .fotky .popisAlbumy1, .photography .poPhotography section .fotky .popisAlbumy3").attr('id', 'neaktivniAlbum'); }, 500); }); } |
||
scheras Profil * |
#4 · Zasláno: 6. 8. 2014, 23:25:39
Co to dát do funkce, která se vyvolá při kliknutí na prvek?
|
||
Retentive Profil * |
#5 · Zasláno: 6. 8. 2014, 23:27:35
scheras:
Ukážeš mi trochu jak? Potřebuju nakopnout. Já už jsem magor, programuju od rána a ještě vzhledem k mým zkušenostem... |
||
scheras Profil * |
#6 · Zasláno: 6. 8. 2014, 23:33:42
tak jen takový pseudokód:
$( prvek ).click( function() { if ( $( this ).attr( "id" ) === "aktivniAlbum" ) { //udělej všechno co je potřeba } }); |
||
Retentive Profil * |
#7 · Zasláno: 6. 8. 2014, 23:38:15
scheras:
Jestli jsem to správně pochopil, vytvořím funkci, při klinutí na dannou šipku. Zjistím, která ze tří sekcí má id aktivniAlbum a tak která toto id bude mít, tak vykonám kód. A takhle se to bude dít stále dokola při kliknutí na dannou šipku, že? Jestli ano, tak díky moc. |
||
quatzael Profil |
#8 · Zasláno: 7. 8. 2014, 00:33:58
Retentive:
člověče Ty se teda vyjadřuješ.. četls to po sobě? Vždyť ty Tvoje věty nemají hlavu a patu. Jak tady mají lidé poznat co opravdu potřebuješ. Jestli Ti nepomohly tady ty výše zmíněné rady, tak zkus trochu srozumitelněji popsat, co se snažíš vyřešit. Pochopil jsem, že asi chceš zjistit, jaký slide je zrovna aktivní. Funguje Ti to teda? |
||
Joker Profil |
#9 · Zasláno: 7. 8. 2014, 07:34:37
Retentive:
Z kódu v [#3] začínám chápat podstatu problému. Chaos v IDčkách vzniká proto, že se přehazují z prvku na prvek. To není dobrý nápad. V tom kódu je to vlastně obráceně, než je běžné: Předpokládám „albumy3“ a „popisAlbumy3“ jsou jednoznačné identifikátory těch bloků, ale jsou udělané jako CSS třídy. A štítek aktivního prvku, který se běžně dělá jako CSS třída, je jako id. scheras: $( this ).attr( "id" ) this.id .
|
||
scheras Profil * |
#10 · Zasláno: 7. 8. 2014, 07:41:09
Joker:
> $( this ).attr( "id" ) > To je zbytečně dlouhá objížďka pro this.id. Díky za poznámku. |
||
Časová prodleva: 10 let
|
0