Avatar billede eazye Nybegynder
10. juni 2004 - 19:00 Der er 10 kommentarer og
1 løsning

At ændre onClick?

Er det muligt, via javascript at ændre et elements onClick?

eks

når der klikkes på en knap, skal et billede's onClick være "location.href='index.html'" og hvis man klikker på en anden knap, skal billedets onClick blive "location.href='test.html'".. er det muligt? eller er det ikke til at ændre på?

På forhånd tak

- EazyE
Avatar billede yellow Nybegynder
10. juni 2004 - 19:18 #1
billedeElement.onclick = new Function("location.href='test.html';");
Avatar billede powernodes Nybegynder
10. juni 2004 - 20:07 #2
En mulighed (IE):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
function redirect1() {
  window.location.href = "http://google.com";
}

function redirect2() {
  window.location.href = "http://yahoo.com";
}

function change(img,func) {
  document.images[img].attachEvent("onclick", func) 
}
</script>
</head>
<body>
<img src="bil.gif" name="pic" width="200" height="133" id="pic" onclick="window.location.href='http://eksperten.dk';" style="cursor:hand;cursor:pointer;">
<p>&nbsp;</p>
<button onclick="change('pic',redirect1);return false;">sæt pic til google</button><br>
<button onclick="change('pic',redirect2);return false;">sæt pic til yahoo</button>
</body>
</html>
Avatar billede skovenborg Nybegynder
10. juni 2004 - 22:22 #3
en anden mulighed, som også virker i mozilla (og browsere som er kompitable med W3C's DOM2 standard):
<script type="text/javascript">
function changeLocation(iname,loc) {
        elm = document.images[iname];
        if (elm.addEventListener) {elm.addEventListener("click",function(){location.href=loc;},false);}
        else if (elm.attachEvent) {elm.attachEvent("onclick", function(){location.href=loc;});}

  }
</script>

<img src="billede.png" name="bld" onclick="location.href='standard.htm';" />
<form>
<input type="button" value="side1" onclick="changeLocation('bld','side1.htm');" />
<input type="button" value="side2" onclick="changeLocation('bld','side2.htm')" />
</form>
Avatar billede roenving Novice
11. juni 2004 - 00:27 #4
Der er vel ikke meget galt i yellows indmelding:

billedeElement.onclick = function(){location.href='test.html'};
Avatar billede eazye Nybegynder
11. juni 2004 - 02:34 #5
Okay.. jeg har fået skovenborgs nr 2, til at fungere nogenlunde.. men det ser ud til at den ikke vil "rense" onClick når der skal en ny på.. den sætter bare den ekstra function ind oveni.. så billedet altså har 2 onClick's..

Hvordan er det muligt at lade den fjerne alle onClicks igen??
Avatar billede eazye Nybegynder
11. juni 2004 - 03:11 #6
Ligemeget, jeg har kringlet mig rundt om det :) læg nogle svar, så jeg kan smide nogle pts ud.. tak
Avatar billede skovenborg Nybegynder
11. juni 2004 - 13:00 #7
okay - hvis du har lavet en forbedring i funktionen vil jeg (og andre) gerne se det :-)
Avatar billede eazye Nybegynder
11. juni 2004 - 15:23 #8
Jeg brugte den bare som du fremlagde den, men da jeg ikke kunne finde ud af at fjerne onClick'sne igen, så fandt jeg på en anden måde at løse mit problem, som ikke har noget med onClick at gøre..

Jeg satte bare et <a> rundt om billederne, og ændrede så href for dem :)
Avatar billede eazye Nybegynder
09. juli 2004 - 11:46 #9
Hvis der er nogen der kan finde ud af at fjerne "onClick'sne" så hører jeg meget gerne fra dem..
Avatar billede roenving Novice
09. juli 2004 - 11:52 #10
billedeElement.onclick = null;
Avatar billede eazye Nybegynder
09. juli 2004 - 11:59 #11
jamen dog jamen dog.. jeg tester lige senere i aften når jeg er hjemme igen.. men tak tak anyway
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