wborgMedlem sedan dec. 2003209 inlägg Hej,
Sitter med ett script som vid onMouseOver ska ändra färg på en hel kolumn
vilket funkar alldeles utmärkt men problemet ligger i att om jag har loopat ut fler än en tabell så ändras färgen på den kolumnen i alla tabeller samtidigt.
Jag vill att det bara ska gälla den tabell jag är onMouseOver på men jag antar
att problemet ligger i att scriptet ligger mitt i min asp loop som loopar ut mina tabeller från en access databas.
Se exempel här: http://www.stefanborg.com/sub/omo_column.asp
Källkoden finns att ladda ner här: http://www.stefanborg.com/sub/dl/omo_column.rar
Hoppas någon förstod vad jag gaggade om :D
/S
The_HulkMedlem sedan juni 20031 837 inlägg lägg till ett ID på dina tabeller.
skicka med ID i din on_cell funktion.
function on_cell(direction, that, tableId) {
var tag = direction == 'column' ? 'td'
: 'tr'
;
var oTable = docuemnt.getElementById(tableId);
var alltags = oTable.getElementsByTagName(tag);
for(var i = 0; i < alltags.length; i++) {
if(direction == 'column' && alltags.item(i).className == that.className) {
alltags.item(i).style.backgroundColor = 'rgb(240, 240, 200)';
}
else if(direction == 'row' && alltags.item(i).className == that.className) {
alltags.item(i).style.backgroundColor = 'rgb(240, 240, 200)';
}
}
}
gör samma förändring i den andre funktionen
wborgMedlem sedan dec. 2003209 inlägg Hulk,
jag får inte ditt script att fungera, jag har lagt till det där i båda funktionerna (on_cell, out_cell).
I denna del av scriptet provade jag oxå att lägga till ett s i getElement (s) ById
vilket inte heller hjälpte :(
var oTable = docuemnt.getElementById(tableId);
Några fler förslag??
/S
The_HulkMedlem sedan juni 20031 837 inlägg finns ingen metod som heter getElementsById()
Det kan bara finnas mer än ett med av ett ID.
Har du även lagt till ID på tabellerna?
ID och NAME är inte samma sak.
ID är unikt medans NAME kan mer än ett element ha samma.
Visa din modiferade kod får att vi ska kunna hjälpa dig mer.
blev visst lite felstavat, ska inte vara var
oTable = docuemnt.getElementById(tableId);
utan var
oTable = document.getElementById(tableId);
e:et hade visst kommit innan m:et
wborgMedlem sedan dec. 2003209 inlägg Hulk,
här kommer den modifierade koden.
http://www.stefanborg.com/sub/dl/omo_column.rar
och här är resultatet av den modifierade koden:
http://www.stefanborg.com/sub/omo_column.asp
/S
wborgMedlem sedan dec. 2003209 inlägg Hulk?
Hat du kikat på det? Hade jag missat något eller bara skrivit på fel ställe? Eller hittar du inget?
/S
The_HulkMedlem sedan juni 20031 837 inlägg du har inte lagt till något ID-attribut på table-taggen
<table align="center" border="1" style="border-collapse: collapse" bordercolor="1px solid #000000">
med ID-attribut
<table [b]id="table_1"[/b] align="center" border="1" style="border-collapse: collapse" bordercolor="1px solid #000000">
byt ut
onmouseover="on_cell('column', this, tableId);"
mot
onmouseover="on_cell('column', this, 'table_1');"
wborgMedlem sedan dec. 2003209 inlägg Hulk,
det löste sig på ett lite annorlunda sätt men det var tack vare din hjälp som vi lyckades komma fram till lösningen på det hela, vill du se hela koden så är det bara att hojta så lägger jag upp en packad fil med koden.
Tack för hjälpen
/S