Discussion:
Løkke eller lignende
(for gammel til at besvare)
Kim Ludvigsen
2015-01-18 11:56:45 UTC
Permalink
Jeg sidder og eksperimenterer med at benytte Jquery til at åbne
dialogbokse med yderligere info, når der klikkes på en info-knap.

Mit problem er, at jeg skal kunne åbne rigtig mange dialogbokse på siden
og ikke bare en enkelt, som de fleste eksempler på dialogboksene hjælper
med.

Normalt skal der selvstændig kode til hver enkelt dialogboks. Både til
at åbne dem og til at sørge for, at de er lukkede fra start.

Åbningen har jeg løst ved at benytte id og klasse med samme navn på
knappen og så "samme-id_div" på div'en:
$( ".dialog" ).click(function() {
$( "#" + this.id + "_div" ).dialog( "open" );

Anden del kan jeg ikke finde ud af at løse på lignende vis. Hver enkelt
dialogboks skal lukkes med en linje som:
$( "#virus_div" ).dialog({ autoOpen: false });

Hvis der ikke er en linje for en div, vil teksten blive vist på siden,
der hvor div'en er placeret. Det smarte ville være en *-funktion, så man
kunne lukke alle forekomster af *_div, men det virker ikke med:
$( "#*_div" ).dialog({ autoOpen: false });

Det må da være muligt at lave noget smart i stedet for at skulle have
hundreder af linjer?

Jeg er stort set på bar bund med hensyn til JavaScript, så jeg skal have
en løsning banket ind med skeer.
--
Mvh. Kim Ludvigsen
Jonathan Stein
2015-01-18 16:47:20 UTC
Permalink
Post by Kim Ludvigsen
$( "#*_div" ).dialog({ autoOpen: false });
id er godt, når du skal have fat på ét element ad gangen. Hvis du skal
lave noget på en hel gruppe af elementer, er class mere oplagt:

$( ".dialog" ).dialog({ autoOpen: false });

(hvis dine dialog div'er altså har class="dialog").

M.v.h.

Jonathan
Kim Ludvigsen
2015-01-18 17:05:24 UTC
Permalink
Post by Jonathan Stein
Post by Kim Ludvigsen
$( "#*_div" ).dialog({ autoOpen: false });
id er godt, når du skal have fat på ét element ad gangen. Hvis du skal
Mit problem var at, de skal alle lukkes på én gang, men kun åbnes én ad
gangen.
Post by Jonathan Stein
Post by Kim Ludvigsen
$( ".dialog" ).dialog({ autoOpen: false });
(hvis dine dialog div'er altså har class="dialog").
Det kan jeg nemt give dem, så de har både class og id, og det virker
fint med ovenstående til at lukke alle, og jeg kan så åbne én ad gangen
med id'en. Tak!
--
Mvh. Kim Ludvigsen
Leif Neland
2015-01-19 23:37:17 UTC
Permalink
Post by Kim Ludvigsen
Post by Jonathan Stein
Post by Kim Ludvigsen
$( "#*_div" ).dialog({ autoOpen: false });
id er godt, når du skal have fat på ét element ad gangen. Hvis du skal
Mit problem var at, de skal alle lukkes på én gang, men kun åbnes én ad
gangen.
Post by Jonathan Stein
Post by Kim Ludvigsen
$( ".dialog" ).dialog({ autoOpen: false });
(hvis dine dialog div'er altså har class="dialog").
Det kan jeg nemt give dem, så de har både class og id, og det virker fint med
ovenstående til at lukke alle, og jeg kan så åbne én ad gangen med id'en.
Tak!
Bare for en anden gangs skyld. Det er ikke noget problem at give et
element flere klasser.
<div class="warning popup" id="pop1">..</div>
<div class="error popup" id="pop2">..</div>

Hvor warning/error f.ex. styrer farve og popup bruges til at styre
mekanikken med at lukke popuppen.

Leif
--
Je suis Charlie
Loading...