Jag är osäker på om detta är rätt forum, men då det gäller bl a java-script så försöker jag här. Jag har nu under en längre tid försökt att lösa detta problem, men inte kunnat. <b>Jag har nu under en längre tid försökt att lösa detta problem, men inte kunnat.</b> Robert Det fungerar.. om man lägger stylen i en css-fil. Jag kan inte förklara varför men man kan inte ha <style></style> i headern på en asp2.0 sida. Robert.Prblem med java-script och div.
Så här ser det ut.
Jag har först en iframe, där jag visar mina nyheter, till höger om har jag en repiter(jag jobbar i Visual Studia C#), som visar de 4 sista inläggen i förkortad vertion. Genom att klicka på en länk, så läses nyheten in i iframen.
I klassiska ASP (det ser nästan likadant ut), så fick jag nedanstående förslag, för att markera en div som låg runt den förkortade nyheten(den till höger):
<code>
<script type="text/javascript">
function changeBG(e){
self.scrollBy(-1000,-1000);
var divs = document.getElementsByTagName('div');
for(var i=0;i<divs.length;i++){
divs[i].className='light1';
}
e.className='dark1';
}
</script>
<div onclick="changeBG(this);" class="light1">
</code>
Nu fungerar inte detta längre, den uppför sig helt "knasigt". Min fotter (som har absolut position botom 0)skickas högst upp.
Kan man inte göra så här längre?Sv: Prblem med java-script och div.
Då intresset för denna tråd inte är så stort, så stänger jag denna tråden, och plocka bort denna bit ifrån mitt project.Sv:Prblem med java-script och div.
En dag på forumet känns inte som någon längre tid direkt, ser heller inget problem med scriptet. Att färga bakgrunden på detta sätt fungerar i FF, IE och Opera.
Det du får passa dig för är hur ALLA div:ar är stylade:
<code>
var divs = document.getElementsByTagName('div');
for(var i=0;i<divs.length;i++){
divs[i].className='light1';
}
</code>
när koden ovan körs ändras stilmallarna för samtliga div:ar på sidan, kanske är det därför din footer flyger iväg.Sv: Prblem med java-script och div.
<b>Jag har nu under en längre tid försökt att lösa detta problem, men inte kunnat. </b>
Jag har försökt i över en vecka innan jag skrev hit.
Eftersom jag inte kan java-script har jag ställt ett antal frågor här.
Frågan är om man inte kan ge det ett namn eller id???
JAg har gjort så här nu:
<code>
<script type="text/javascript">
function changeBG(e){
self.scrollBy(-1000,-1000);
var divs = document.getElementsByTagName('span');
for(var i=0;i<divs.length;i++){
divs[i].className='light1';
}
e.className='dark1';
}
</script>
<span onclick="changeBG(this);" class="light1";>
</code>
Men ingenting händer. Det fungerade kanonbra i klassiksa ASP men inte i ASP.net.
Finns det inget annat sätt?Sv:Prblem med java-script och div.
Den typiska sidan:
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link href="StyleSheet.css" rel="stylesheet" type="text/css" />
<title>Test</title>
<script type="text/javascript" language="javascript">
function changeBG(e){
self.scrollBy(-1000,-1000);
var divs = document.getElementsByTagName('div');
for(var i=0;i<divs.length;i++){
divs[i].className='light1';
}
e.className='dark1';
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div onclick="changeBG(this);" class="light1">
data1</div>
<div onclick="changeBG(this);" class="light1">
data2</div>
<div onclick="changeBG(this);" class="light1">
data3</div>
</form>
</body>
</html>
och stylesheet.css som den refererar till:
.light1{background-color:#cccccc;}
.dark1{background-color:#888888;}
För att undvika problem med att byta stilmall på alla div:ar eller alla span:s så kan man alltid kolla vad taggen har för className innan, något i stil med detta borde fungera:
function changeBG(e){
self.scrollBy(-1000,-1000);
var divs = document.getElementsByTagName('div');
for(var i=0;i<divs.length;i++){
if(divs[i].className=='dark1'){
divs[i].className='light1';
}
}
e.className='dark1';
}
Sv: Prblem med java-script och div.
Tack för att du tar dig tid.
Jag får nu inga felmedelanden, men den byter heller ingen style(stylen ligger i en style-fil).
När jag lägger in en alert
<code>
e.className='dark1';
alert("KLICKED");
</code>
...då kommer alerten upp, så där finns inte felet.
Du tror inte att man bara kan byta bakgrundsfärg via scriptet?
[REDIGERAT]
Det ser ut som om problemet inte ligger i sciptet.
När jag testar och gör så här
<code>
<div class="dark1" onclick="changeBG(this);" >
</code>
..så skulle ju stylen göra att hela diven blir mörk, men ingenting händer.
så här ser stylen ut:
<code>
.Dark1
{
BACKGROUND-COLOR:#F4F1F1;
}
.Light1
{
BACKGROUND-COLOR:#FFFFFF;
}
</code>
Det är nog mer problem än vad som jag hadde väntat...