Avatar billede spectual Nybegynder
08. november 2001 - 13:02 Der er 17 kommentarer og
1 løsning

Mangler et lille løsningsforslag

Jeg har en select boks henvisning lagret i en variabel.

Jeg vil gerne tage objektets onChange event handler og tilføje noget nyt oveni den gamle.

Hvordan kan det problem løses?
Avatar billede spectual Nybegynder
08. november 2001 - 13:02 #1
altså en reference til objektet
Avatar billede bamzen Nybegynder
08. november 2001 - 13:05 #2
altså hvis du vil tilføje til den variabel du har kan du bruge

variabelnavn += tilføjelse
Avatar billede spectual Nybegynder
08. november 2001 - 13:08 #3
æhm... det er ikke lige hvad jeg mener
Avatar billede bamzen Nybegynder
08. november 2001 - 13:09 #4
så prøv at beskriv det på anden måde
Avatar billede spectual Nybegynder
08. november 2001 - 13:11 #5
det er noget i den stil:

<select name=\"yaw\"><option>test</option><option>test 2</option></select>

<script language=\"JavaScript>

function new_eventhandler () {
alert (\'added\');
}

function change_onchange (select_ref) {

select_ref.onChange = select_ref.onChange + new_eventhandler ();
}

change_onchange (document.all [\"yaw\"]);
Avatar billede spectual Nybegynder
08. november 2001 - 13:12 #6
<select name=\"yaw\" onChange=\"java script:alert (\'old eventhandler\');\"><option>test</option><option>test 2</option></select>

<script language=\"JavaScript>

function new_eventhandler () {
alert (\'added\');
}

function change_onchange (select_ref) {

select_ref.onChange = select_ref.onChange + new_eventhandler ();
}

change_onchange (document.all [\"yaw\"]);

- - - - -

Som du kan se, har objektet en onChange eventhandler i forevejen. Jeg vil gerne have til at være sådan, at når change_onchange kaldes, vil selectboksen både udføre den gamle eventhandler plus den nye eventhandler.
Avatar billede spectual Nybegynder
08. november 2001 - 13:13 #7
problemet er bare at man ikke kan gøre det på den måde der...
Avatar billede bamzen Nybegynder
08. november 2001 - 13:18 #8
OK

hvad med at lave en funktion som som eksempelvis kunne se sådan ud

var selectState = 0;

function myeventhandler(){
if(selectState==0){
oldevent here;
selectState = 1;
} else {
newevent here
}
}

så kan du bare kalde den samme funktion begge gange

Avatar billede olebole Juniormester
08. november 2001 - 13:31 #9
<ole>
Det er stadig yderst tåget formuleret.
Er det ligegyldigt, hvad der vælges i select\'en?
Er det samme ændring, hver gang?
Hvad skal ske, hvis brugeren ombestemmer sig og vælger noget nyt?
...det forekommer mig, der er en del ting, du ikke har tænkt over - eller ikke kommunikerer videre  ;o)
/mvh
</bole>
Avatar billede spectual Nybegynder
08. november 2001 - 15:21 #10
det er der sikkert...

jeg vil bare køre 2 stykker kode på en event, hvor den første ikke er statisk... jeg kan heller ikke vide hvad der står i det første stykke kode, da det er brugeren af min kode, der definerer det og ikke mig.

Det andet stykke kode er noget jeg laver..

Det er faktisk en slags \"wrapper\" effekt jeg ønsker... hvis du kender udtrykket :o)
Avatar billede bamzen Nybegynder
08. november 2001 - 15:29 #11
hmm, har du overvejet at bruge eval() funktionen????

der kan du gemme en funktion i en variabel, og så uddføre den ved at kalde den i en eval

(eval=evaluate) ;-)

Måske det er løsningen på dit problem?
Avatar billede olebole Juniormester
08. november 2001 - 15:39 #12
Hvis du ikke ved, hvad der står i første funktion - hvordan ved du så, der overhovedet kommer en anden funktion? Skal den ikke vælges på onchange med den første funktion?
Nej, jeg ved ikke, hvad du mener med en \"wrapper\" effekt.
/mvh
Avatar billede spectual Nybegynder
09. november 2001 - 09:06 #13
jeg vil afvikle det, der end måtte stå i forevejen i onChange event\'en og så afvikle mit eget bagefter således at man kan kalde mit modul med sin egen selectboks m. onchange event kode uden at det bliver slettet.
Avatar billede spectual Nybegynder
09. november 2001 - 10:15 #14
Her er et virkende eksempel med en onClick event:

<HTML>
<head>

<script language=\"JavaScript\">

var gammel;

function test2 () {
  alert (\'test\');
}

function run_both () {

  alert (\'run both\');
  document.all [\"zap\"].onclick = gammel;
  document.all [\"zap\"].onclick();
  document.all [\"zap\"].onclick = test2;
  document.all [\"zap\"].onclick();
  document.all [\"zap\"].onclick = run_both;
}

function test () {

  gammel = document.all [\"zap\"].onclick;

  document.all [\"zap\"].onclick = run_both;
}

</script>

</HEAD>

<BODY BGCOLOR=\"#FFFFFF\">

<input name=\"zap\" onClick=\"java script:alert (\'gammel eventhandler\');\" type=\"button\" value=\"Yaw\">

<script language=\"JavaScript\">test();</script>

</BODY>
</HTML>

-- -- -- --

så kan i se helt præcis hvad jeg mener
Avatar billede spectual Nybegynder
09. november 2001 - 10:18 #15
tak for jeres interesse...:)
Avatar billede olebole Juniormester
09. november 2001 - 10:36 #16
Okay ....jamen, det er jo også noget helt andet, end det, du bad om  ;o)
Avatar billede spectual Nybegynder
09. november 2001 - 10:37 #17
okay ole... hvordan ville du forklare hvad jeg prøvede at opnå?
Avatar billede spectual Nybegynder
09. november 2001 - 10:38 #18
det er lidt svært at forklare er det ikke?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester