/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Toggle drop down window
Fra : Rune Jensen


Dato : 26-07-09 13:38

Jeg har fundet følgende:

http://arapehlivanian.com/wp-content/uploads/2007/02/nojscss.html

som faktisk opfylder alle mine ønsker. Men - det virker ikke ordenligt i
Opera. Det er som om, den laver to "toggles" ad gangen ind i mellem, og
både åbner og lukker samtidig. Og så kommer højrekliksmenuen også frem
ind i mellem ved hurtig skift. Ingen af delene er ønskelige.

Jeg kan ikke umiddelbart se, hvad problemet er. Andre, som kan?

...måske bare give et hint? Jeg har ikke noget imod at arbejde selv, hvis
jeg bare har noget at gribe fat i.


MVH
Rune Jensen

 
 
Stig Johansen (26-07-2009)
Kommentar
Fra : Stig Johansen


Dato : 26-07-09 14:29

"Rune Jensen" <runeofdenmark@gmail.com> wrote in message
news:4a6c4e5f$0$25178$456a7185@news.cirque.dk...
> Jeg kan ikke umiddelbart se, hvad problemet er. Andre, som kan?

Det virker fint i min gamle Konqueror, men opfører sig også lidt underligt i
min FF 3.5.

Umiddelbart virker det lidt underligt med brugen af 2 events:
.....
            toggle.onclick = fn;
            toggle.onfocus = fn;
.....
Det kan godt give den dobbelteffekt du snakker om, da et klik vil triggere
begge events (hvis fokus ikke er i forvejen).
Derudover laver min FF en select(fremhævning?), som muligvis kan skyldes at
man ikke bruger addeventlistener i steder for at assigne events direkte.
Prøv at bruge addeventlistener hvor det understøttes, og nøjes med at bruge
(on)click, subsidiært (on)mouseup.
-- Med venlig hilsen/Best regardsStig Johansen




Ace (28-08-2009)
Kommentar
Fra : Ace


Dato : 28-08-09 11:28

Rune Jensen skrev:

> Jeg kan ikke umiddelbart se, hvad problemet er. Andre, som kan?


Jeg ved ikke om det er noget du kan bruge, men jeg har brugt dette script et
par gange før i tiden, til at toggle vis/skjul af div's :)

<head>
<script type="text/javascript">
function toggle(id) {
if (document.getElementById) {
var el = document.getElementById(id);
el.style.display = (el.style.display == 'none') ? 'block' : 'none';}}
</script>
</head>
<body>
<div onClick="toggle('layer1');">tryk mig</div>
<div id="layer1" style="display:none;">text<br>text<br>text</div>
</body>

Venligst
Ace

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Birger Sørensen (28-08-2009)
Kommentar
Fra : Birger Sørensen


Dato : 28-08-09 17:29

Rune Jensen udtrykte præcist:
> Jeg har fundet følgende:
>
> http://arapehlivanian.com/wp-content/uploads/2007/02/nojscss.html
>
> som faktisk opfylder alle mine ønsker. Men - det virker ikke ordenligt i
> Opera. Det er som om, den laver to "toggles" ad gangen ind i mellem, og både
> åbner og lukker samtidig. Og så kommer højrekliksmenuen også frem ind i
> mellem ved hurtig skift. Ingen af delene er ønskelige.
>
> Jeg kan ikke umiddelbart se, hvad problemet er. Andre, som kan?
>
> ..måske bare give et hint? Jeg har ikke noget imod at arbejde selv, hvis jeg
> bare har noget at gribe fat i.
>
>
> MVH
> Rune Jensen

Der er helt klart et problem med at have hide/show funktionen på både
onclick og onfocus.
Hvis dit klikelement ikke har focus når der klikkes, kaldes den to
gange, så effekten er at der ingentng sker.

Højrekliksmenuen skulle helst ikke have noget med det at gøre, med
mindre der højreklikkes, hvor den så tilgengæld bør vises, uden tøven,
og kun hvis dit klikelement ikke har focus, skal der vises/skjules. (Og
det virker faktisk i FF3.5.2 og IE8 med og uden compatibilitet...)
Højreklik aktiverer ikke onclick.
Den event hedder oncontextmenu.

Desuden:
event.cancelBubble er deprecated (FF).
og jeg er ikke sikker på at din rutine til sidst, faktisk virker efter
hensigten.

   if (!e) var e = window.event;
   e.cancelBubble = true;
   if (e.stopPropagation) e.stopPropagation();

ville jeg skrive, noget i retning af

if ( window.event) { // IE specifik
window.event.cancelBubble = true;
}
else {
e.preventDefault();
e.stopPropagation();
}

Jeg har tidligere haft problemer med den slags, og slet ikke kunnet få
det til at gøre som forventet i Opera.
Og hvis jeg ikke husker helt galt, hjalp det at sætte preventDefault
på.
Den vil normal kunne bruges til f.eks. at forhindre contextmenuen i at
poppe op ved højreklik. Syntes i øvrigt at huske, at der ikke er (var)
ret meget enighed om hvad de forskellige egenskaber og metoder skal
hverken hedde eller gøre, browserne imellem. Men det er ved at være
længe siden og jeg kan huske forkert - der er måske også sket et og
andet siden...

Birger


--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Søg
Reklame
Statistik
Spørgsmål : 177577
Tips : 31968
Nyheder : 719565
Indlæg : 6409071
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste