/ 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
skift ved onclick
Fra : Knud Gert Ellentoft


Dato : 11-12-05 02:27

http://ellentoft.1go.dk/test/skift_tabelbg.htm er der skift af
tabelbaggrund/color ved onclick.

Hvordan får man den sidst klikkede celle til at gå tilbage til
den oprindelige farve ved klik uden for tabellen?
--
Topposter du svar, dvs. skriver dit svar over det citerede,
så ryger du på min ignoreringsliste.
Svar under det du citerer og citer kun det du svarer på - tak.
http://usenet.dk/netikette/citatteknik.html

 
 
Jens Gyldenkærne Cla~ (11-12-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 11-12-05 03:21

Knud Gert Ellentoft skrev:

> På http://ellentoft.1go.dk/test/skift_tabelbg.htm er der skift af
> tabelbaggrund/color ved onclick.
>
> Hvordan får man den sidst klikkede celle til at gå tilbage til
> den oprindelige farve ved klik uden for tabellen?

Man skal ind og pille ved eventmodellen -fx som her:
<http://gyros.dk/usenet/temp/tabelklik.html>.

Et par kommentarer:
- Siden validerer ikke, da der er brugt onclick på html-elementet.
Det kan godt fjernes, men så virker klikket kun inden for body-
området - der her let bliver noget mindre end viewporten. Det kan
sikkert fikses med css - eller måske ved at bruge javascript til at
definere document.onclick.

- Den noget uskønne brug af "event" som argument til highlightCell,
skyldes Firefox. IE og Opera kan fint arbejde med event direkte i
funktionen, men FF skal tilsyneladende have det serveret direkte i
funktionskaldet.

- Siden er testet i IE6, Opera 8.5 og Firefox 1.5, alle på Windows.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Knud Gert Ellentoft (11-12-2005)
Kommentar
Fra : Knud Gert Ellentoft


Dato : 11-12-05 03:59

Jens Gyldenkærne Clausen skrev:

> Det kan
>sikkert fikses med css - eller måske ved at bruge javascript til at
>definere document.onclick.

Tak for det, det kan klares ved at sætte height på body i css.

Men så vil IE meget gerne sætte unødig scroll på, hvis det skal
fungere nogenlunde i alle størrelser vinduer.

http://ellentoft.1go.dk/test/skift_tabelbg_2.htm

Men, OK det vigtigste er at det er i området omkring tabellen.

Og jeg skal ikke bruge det til noget umiddelbart, jeg sad bare og
legede i stedet for at gå i seng.
--
Topposter du svar, dvs. skriver dit svar over det citerede,
så ryger du på min ignoreringsliste.
Svar under det du citerer og citer kun det du svarer på - tak.
http://usenet.dk/netikette/citatteknik.html

Lasse Reichstein Nie~ (11-12-2005)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 11-12-05 15:07

Jens Gyldenkærne Clausen <jens@gyros.invalid> writes:

> - Den noget uskønne brug af "event" som argument til highlightCell,
> skyldes Firefox. IE og Opera kan fint arbejde med event direkte i
> funktionen, men FF skal tilsyneladende have det serveret direkte i
> funktionskaldet.

jeg antager at du henviser til
---
function highlightCell(obj, evt)
{
   var e = (window.event) ? window.event : evt;
---
og
---
<td onclick="highlightCell(this, event)">Celle 1</td>
---

Første linje i highligtCell er overflødig. Alle browser forstår
"event" som variable i en "intrinsic event handler" (som "onclick"),
så "evt" vil altid indeholde den rigtige event, og det er ikke
nødvendigt at tjekke "window.event".

At IE (og Opera efterlignende IE) også gør event'en tilgængelig som en
global variabel (i.e., "window.event"), er Microsofts opfindelse. Den
officielle W3C Event-DOM (som IE ikke understøtter, men alle moderne
browsere gør), sender eventen med som argument til de event-handlere
man har registreret.

Globale variable er generelt en dårlig ide, så jeg ville ikke bebrejde
Mozilla at de ikke efterligner den idé fra IE :)

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Jens Gyldenkærne Cla~ (11-12-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 11-12-05 16:17

Lasse Reichstein Nielsen skrev:

> Første linje i highligtCell er overflødig. Alle browser
> forstår "event" som variable i en "intrinsic event handler"
> (som "onclick"), så "evt" vil altid indeholde den rigtige
> event, og det er ikke nødvendigt at tjekke "window.event".

Fint nok. Men man kan så stadig ikke undgå at have to argumenter
til funktionen?

> At IE (og Opera efterlignende IE) også gør event'en
> tilgængelig som en global variabel (i.e., "window.event"), er
> Microsofts opfindelse. Den officielle W3C Event-DOM (som IE
> ikke understøtter, men alle moderne browsere gør), sender
> eventen med som argument til de event-handlere man har
> registreret.

Er der andre måde at tilgå event på end de to der er nævnt indtil
nu (window.event + event kaldt fra en "intrinsic event handler").

Det er muligt at der er gode grunde til at window.event ikke
eksisterer i Gecko-browsere, men det virker lidt bøvlet at skulle
sende event med som argument en masse gange, i stedet for bare at
kunne tilgå den globalt.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Lasse Reichstein Nie~ (12-12-2005)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 12-12-05 18:19

Jens Gyldenkærne Clausen <jens@gyros.invalid> writes:

> Fint nok. Men man kan så stadig ikke undgå at have to argumenter
> til funktionen?

Nej, eventen skal komme et sted fra.

> Er der andre måde at tilgå event på end de to der er nævnt indtil
> nu (window.event + event kaldt fra en "intrinsic event handler").

Afhængigt af hvordan man tæller:

"event" i intrinsic event handler-script: onclick=" .... event..."
global "event" i IE: 'window.event' ell. 'event'
Første argument til ikke-IE handler metode:
blah.onclick=function(evt){... evt ...}
eller
blah.addEventHandler("click", function(evt){...evt...}, false);
eller i IE's attachEvent:
blah.attachEvent("onclick", function(evt){...evt...});

Man kan sige at den første i virkeligheden bare bliver oversat
til en af de andre, altså:

<blah onclick="...event...">

svarer i standard-browsere til
blahRef.onclick = new Function("event","...event...");
og i IE til
blahRef.onclick = new Function("...event...");
(hvor "event" så refererer til den globale variabel).

> Det er muligt at der er gode grunde til at window.event ikke
> eksisterer i Gecko-browsere, men det virker lidt bøvlet at skulle
> sende event med som argument en masse gange, i stedet for bare at
> kunne tilgå den globalt.

Sådan er der så mange ting det kunne være smartere ikke at skulle
skrive, men det gør immervæk koden lettere at læse at man ikke
afhænger af nogle variable der er erklæret et helt andet sted.

Så er man også sikker på at man kun tilgår eventen når der er en
nuværende event overhovedet.

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

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

Månedens bedste
Årets bedste
Sidste års bedste