10. januar 2005 - 22:15
Der er
51 kommentarer og 1 løsning
ændre link
hvordan kan jeg ændre teksten som står i et link? <a id="mit_link" href="">teksk som skal kunne ændres</a>
Annonceindlæg fra Barco
10. januar 2005 - 22:22
#1
prøv med: document.getElementById("mit_link").innerHTML = 'heyheyhey';
10. januar 2005 - 22:23
#2
f.eks. med en onmouseover/onmouseout: <a id="mit_link" href="" onmouseover="this.innerHTML='heyheyhey';" onmouseout="this.innerHTML='teksk som skal kunne ændres';">teksk som skal kunne ændres</a> Eller en funktioner.. - Svar.
10. januar 2005 - 22:25
#3
hvordan kan jeg så få det tilbage til det oprindelige? :)
10. januar 2005 - 22:26
#4
hvis det er i en funktion...
10. januar 2005 - 22:27
#5
Hvor aktiverer du det i funktion?
10. januar 2005 - 22:29
#6
funktionen er ikke færdig endnu... håber du kan se hvad jeg vil :) var expand = new Array; function expand_div(id, str) { if('undefined' == typeof expand_div[id]) expand_div[id] = false; var a = document.getElementById('a_'+id); var img = document.getElementById('img_'+id); var div = document.getElementById('div_'+id); if(expand[id]) { a.innerHTML = str; img.src = 'gfx/button.expand.png'; div.style.display = 'none'; } else { img.src = 'gfx/button.contract.png'; div.style.display = 'block'; } expand[id] = !expand[id]; }
10. januar 2005 - 22:31
#7
function vistekst(lnk,msg) { document.getElementById(lnk).innerHTML=msg; } du kalder den så med: <a id="mit_link" href="" onmouseover="vistekst(this.id,'musen er over!'); onmouseout="vistekst(this.id,'Dette er start');>Dette er start</a>
10. januar 2005 - 22:59
#8
kan man ikke gøre det således at man ikke skal skrive den oprindelige tekst i sin funktion?
10. januar 2005 - 23:04
#9
Du kan sikket lave det via en array.. kigger lige på det..
10. januar 2005 - 23:08
#10
Eksempel: <script type="text/JavaScript"> ov = new Array(); ou = new Array(); ov[1] = "heyheyhey"; ou[1] = "Dette er start"; ov[2] = "noget andet"; ou[2] = "dette er starten på et anden link"; function vis(lid,o,arr) { document.getElementById(lid).innerHTML = eval(o + '[' + arr + ']'); } </script> <a id="mit_link" href="" onmouseover="vis(this.id,'ov',1);" onmouseout="vis(this.id,'ou',1);">Dette er start</a> Det kan naturligvis gøres smarterer.. men er det noget i den stil?
10. januar 2005 - 23:09
#11
ov = over = onmouseover ou = out = onmouseout
10. januar 2005 - 23:14
#12
lige en ting mere... med den seneste funktion er det så lovligt bare at kalde den med den ene var? altså at undlade at sende de sidste to med? eks. vis(noget)
10. januar 2005 - 23:18
#13
Nej, det er jeg ved at arbejde på.. Den skal vide 3 ting: 1) hvilket id 2) om det er onmouseover eller om det onmouseout 3) hvilken besked, afhængigt af #2 Jeg prøver at se, om man ikke kan nøjes med at sende this.id ..
10. januar 2005 - 23:20
#14
nej, det var ikke så meget lige denne her funktion jeg tænkte på :) bare sådan generelt hvis man i selve funktionen angiver f.eks. 3 variabler.. skal de så alle 3 kaldes når man skriver funktionen? eller kan man gøre noget ala det her: function min_func(var1, var2 = 0, var3 = 9) { // noget }
10. januar 2005 - 23:24
#15
Nej, det behøver man ikke.
10. januar 2005 - 23:27
#16
man kan altså bare nøjes med at gøre således? vis(noget) function vis(var1, var2, var3) { }
10. januar 2005 - 23:28
#17
Ja. Eksempel med begge funktioner: <script type="text/JavaScript"> ov = new Array(); ou = new Array(); ov[1] = "heyheyhey"; ou[1] = "Dette er start - link id 1"; ov[2] = "noget andet"; ou[2] = "Dette er start - link id 1"; function vis(lid,arr) { el = document.getElementById(lid); if (el.innerHTML == ov[arr]) { el.innerHTML = ou[arr]; } else { el.innerHTML = ov[arr]; } } function vis_arr(lid,a,v,s) { elm = document.getElementById(lid); lnkid = elm.id; lnkid = lnkid.substring(lnkid.indexOf("arr") + "arr".length); if (elm.innerHTML == ov[lnkid]) { elm.innerHTML = ou[lnkid]; } else { elm.innerHTML = ov[lnkid]; } //alert(lnkid); } </script> <!-- bruges med funktionen "vis" --> <a id="mit_link" href="" onmouseover="vis(this.id,1);" onmouseout="vis(this.id,1);">Dette er start</a> <!-- bruges med funktionen "vis_arr" --> <br><br>vis_arr: <br> <a id="mit_link_arr1" href="" onmouseover="vis_arr(this.id);" onmouseout="vis_arr(this.id);">Dette er start - link id 1</a> <br> <a id="mit_link_arr2" href="" onmouseover="vis_arr(this.id);" onmouseout="vis_arr(this.id);">Dette er start - link id 2</a>
10. januar 2005 - 23:29
#18
Glemte forklaringen :-) Det vigtige er "arrX" (hvor X er id-nummeret) i id'en: <a id="....arrX"...>
10. januar 2005 - 23:34
#19
thx :) jeg har så lige en enkelt anden version af den samme version hvor jeg laver en onload på min knap function fix_png(myImage) { if(document.all) { var imgID = (myImage.id) ? "id='" + myImage.id + "' " : ""; var imgClass = (myImage.className) ? "class='" + myImage.className + "' " : ""; var imgStyle = "display:inline-block;" + myImage.style.cssText; if(myImage.parentElement.href) imgStyle += "cursor:hand;cursor:pointer"; var strSpan = "<span " + imgID + imgClass + " style=\"" + "width:" + myImage.width + "px; height:" + myImage.height + "px;" + imgStyle + ";" + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'" + myImage.src + "\', sizingMethod='scale');\"></span>"; myImage.outerHTML = strSpan; } } var expand = new Array; function expand_div(id) { if('undefined' == typeof expand_div[id]) expand_div[id] = false; var img = document.getElementById('img_'+id); var div = document.getElementById('div_'+id); if(expand[id]) { img.src = 'gfx/button.expand.png'; div.style.display = 'none'; } else { img.src = 'gfx/button.contract.png'; div.style.display = 'block'; } expand[id] = !expand[id]; } <a href="java script:expand_div('chat_func')"><img id="img_chat_func" src="gfx/button.expand.png" onload="fix_png(this)"></a> her skifter den ikke min img ud... nok pga den onload der?!
10. januar 2005 - 23:35
#20
ups.. det jeg mente var jeg har så lige en lidt anden version af den samme funktion hvor jeg har en img som knap med en onload...
10. januar 2005 - 23:36
#21
Hvis du kun har 1 (eller 2) af de der fix_png-kald, smid den i body: <body onload="fix_png('img_chat_func');"> Jeg mener at "onload" i img-tags, er en Internet Explorer-ting.. er ikke helt sikker..
10. januar 2005 - 23:37
#22
..og så ville jeg hellere bruge: <a href="#" onclick="fix_png(this);return false">...</a> Men helst i body-tag'et :-)
10. januar 2005 - 23:45
#23
jeg bruger den fix en del steder faktisk... mange flere gang end 2 :p kan man ikke lave noget fusk i min expand_div() så den nærmest deri "reloader" min onload i min img?
10. januar 2005 - 23:46
#24
ang. det med at onload i img-tags er noget IE er også helt fint... for det er også kun i IE at den skal køre den onload... pga transparency ;)
10. januar 2005 - 23:48
#25
reloader din onload? det eneste din onload gør, er fix_png(this) Hvis du vil, kan du lavet en liste med dine fix_png: fix_png(1); fix_png(2); fix_png(3); hvor tallet er id'erne på dine billeder..
10. januar 2005 - 23:49
#26
heh.. du har ikke lagt mærke, til den der copy&paste fejl jeg lavede :-)
10. januar 2005 - 23:54
#27
hvilken fejl? :p
10. januar 2005 - 23:57
#28
siger jeg ikke :-)
11. januar 2005 - 00:05
#29
hehe...
men jeg har lige lavet lidt om på det, men det ser lidt forkert ud når jeg laver en ny fix_png()
http://temp.electrobeat.dk/tst under chat.. "Chatfunktioner"
login: test // test
var expand = new Array;
function expand_div(id)
{
if('undefined' == typeof expand_div[id]) expand_div[id] = false;
var img = document.getElementById('img_'+id);
var div = document.getElementById('div_'+id);
if(expand[id])
{
img.src = 'gfx/button.expand.png';
div.style.display = 'none';
fix_png(img);
}
else
{
img.src = 'gfx/button.contract.png';
div.style.display = 'block';
fix_png(img);
}
expand[id] = !expand[id];
}
11. januar 2005 - 00:09
#30
er det en IE-only side?
11. januar 2005 - 00:11
#31
nej... men den bliver ikke vist helt korrekt i firefox :(
11. januar 2005 - 00:33
#32
Måske skal billederne bare preloades.. <script type="text/JavaScript"> image1 = new Image(); image1.src = "gfx/button.expand.png"; image2 = new Image(); image2.src = "gfx/button.contract.png"; </script>
11. januar 2005 - 16:25
#33
altså sådan her? var expand = new Array; function expand_div(id) { if('undefined' == typeof expand_div[id]) expand_div[id] = false; var img = document.getElementById('img_'+id); var div = document.getElementById('div_'+id); if(expand[id]) { new_img = new Image(); new_img.src = "gfx/button.expand.png"; img.src = 'gfx/button.expand.png'; div.style.display = 'none'; fix_png(img); } else { new_img = new Image(); new_img.src = "gfx/button.contract.png"; img.src = 'gfx/button.contract.png'; div.style.display = 'block'; fix_png(img); } expand[id] = !expand[id]; }
11. januar 2005 - 21:33
#34
Nej. Preload-scriptet kan stå alene, og før dine funktioner (behøver vist ikke at være før)..
11. januar 2005 - 21:36
#35
kan det ikke implementeres i min funktion som jeg har forsøgt der? :)
11. januar 2005 - 21:53
#36
Nej, det skal ikke implementeres i nogen funktioner :-) Det skal køres når siden loades.. det den gør, er at indlæse billederne så de er klar til brug.. :-)
11. januar 2005 - 21:58
#37
jeg er ikke helt med? hvordan virker den helt præcis?
11. januar 2005 - 22:03
#38
1) Scriptet indsættes på den side, hvor billederne er. 2) Det skal bare stå alene, dvs det skal IKKE implementeres i en funktion Det er bare det :-) #1: Du kan også bare indsættes scriptet på din første side (eller menuen), så billederne indlæses/caches (dvs ligger lokalt = på din computer = hurtigt load) og er klar til brug.
11. januar 2005 - 22:03
#39
hvordan kan jeg så via javascript skrive billederne til siden.. for at min fix_png kan vise billederne skal de være vist før?! det var det problem jeg havde før :( write.document ???
11. januar 2005 - 22:03
#40
Det skal ikke vises! :-) Det skal bare loades... og så bruge du dine fix_png funktioner, hvis det er nødvendigt.. Prøv det.
11. januar 2005 - 22:08
#41
img_expand = new Image(); img_expand.src = gfx/button.expand.png'; img_contrac = new Image(); image2.src = 'gfx/button.contract.png'; var expand = new Array; function expand_div(id) { if('undefined' == typeof expand_div[id]) expand_div[id] = false; var img = document.getElementById('img_'+id); var div = document.getElementById('div_'+id); if(expand[id]) { img.src = img_expand; div.style.display = 'none'; fix_png(img); } else { img.src = img_contract; div.style.display = 'block'; fix_png(img); } expand[id] = !expand[id]; }
11. januar 2005 - 22:10
#42
var lidt for hurtig img_expand = new Image(); img_expand.src = 'gfx/button.expand.png'; img_contract = new Image(); img_contract.src = 'gfx/button.contract.png'; var expand = new Array; function expand_div(id) { if('undefined' == typeof expand_div[id]) expand_div[id] = false; var img = document.getElementById('img_'+id); var div = document.getElementById('div_'+id); if(expand[id]) { img.src = img_expand; div.style.display = 'none'; fix_png(img); } else { img.src = img_contract; div.style.display = 'block'; fix_png(img); } expand[id] = !expand[id]; }
11. januar 2005 - 22:13
#43
Ja, det ser fint ud.. virker det?
11. januar 2005 - 22:16
#44
prøv at smide preload-scriptet i dit <head> </head>
11. januar 2005 - 22:19
#45
kan jeg lave den sådan her? sammen med min js fil? <script src="req/javascripts.js" language="javascript" type="text/javascript"> img_expand = new Image(); img_expand.src = 'gfx/button.expand.png'; img_contract = new Image(); img_contract.src = 'gfx/button.contract.png'; </script>
11. januar 2005 - 22:21
#46
det er det samme som hvis jeg smider den i min js fil :( der er åbenbart ikke så meget at gøre ved det... desværre
11. januar 2005 - 22:21
#47
så prøv med hele urls.. dvs,
http://.....png i stedet for bare gfx/...png
11. januar 2005 - 22:36
#48
heller ikke :( jeg må vel bare prøve at lave en div mere med knappen som der skiftes mellem... og så se om det hjælper men tak for hjælpen :)
11. januar 2005 - 23:16
#49
forresten.. jeg har lige en ting... grunden til at det ikke virker, kan det ikke være at der bare bliver lavet en ny <span> oveni den gamle og den derfor bliver lidt fucked? kan man ikke på en måde slette den <span> som er der i forvejen?
12. januar 2005 - 16:47
#50
hmm... hvorfor bliver der lavet et nyt span? Det eneste der skal ske, er jo at skifte billedet.. eller hva'?
Vi tilbyder markedets bedste kurser inden for webudvikling