Hoe laat ik met een onMouseOver in een anchor tag (link dus) de achtergrond van de td waarin de anchor staat swappen? De code moet in een externe .js komen te staan, omdat ik de code veel per pagina nodig heb, en van die pagina ga ik er ook nog eens veel hebben. Ik heb al wat geprobeerd maar ik kan nog niet zo goed omgaan met objecten (
) dus ik had gehoopt hier wat hulp te kunnen vinden (kant-en-klare code is niet nodig, gewoon wat ideetjes zijn ruim voldoende)
code:
1
2
3
4
5
6
7
8
9
10
11
12
| function setLinks()
{
for (a in document.links)
document.links[a].onmouseover = hovertje
}
function hovertje()
{
elm = this.parentElement
if (elm.tagName = "TD")
elm.style.backgroundInage = "blaat.gif"
}
window.onload = setLinks |
zoiets zou al een flink end helpen
Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen
Hm, dan krijg ik de melding 'elm is leeg of geen object'. Ik heb backgroundInage al naar backgroundImage veranderd, daar ligt het niet aan. hovertje() roep ik aan vanuit de a-tag dus, de functie setLinks() begrijp ik niet helemaal.. is het daarin de bedoeling dat aan elke link in m'n pagina de onMouseOver event moet worden toegeschreven en daarin hovertje meot komen te staan?
setLinks() roep je in de onload van je body aan. Dan zou het moeten werken.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| <script type="text/javascript">
function hovertje( elm)
{
parentelm = elm.parentElement;
if (parentelm.tagName = "TD")
{
parentelm.style.backgroundImage = "blaat.gif"
}
}
</script>
...
<td>
<a href="url" onmouseover="hovertje( this )">Blaa</a>
</td> |
Zou het moeten doen
"In America, consumption equals jobs. In these days, banks aren't lending us the money we need to buy the things we don't need to create the jobs we need to pay back the loans we can't afford." - Stephen Colbert
@eddie19:
dit had ik al geprobeerd, ik krijg de melding: Deze actie wordt niet ondersteund door dit object
helaas
dit had ik al geprobeerd, ik krijg de melding: Deze actie wordt niet ondersteund door dit object
helaas
Hmm.. heb net even getest...Verwijderd schreef op 23 augustus 2002 @ 16:03:
@eddie19:
dit had ik al geprobeerd, ik krijg de melding: Deze actie wordt niet ondersteund door dit object
helaas
Staat er wat anders in je td?
anders kun je dit gebruiken:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| <script type="text/javascript">
function hovertje( elm )
{
elm.style.backgroundImage = "blaat.gif";
}
</script>
[...]
<table>
<tr>
<td onmouseover="hovertje( this )">
<a href="#" >Blaa</a>
</td>
</tr>
</table> |
"In America, consumption equals jobs. In these days, banks aren't lending us the money we need to buy the things we don't need to create the jobs we need to pay back the loans we can't afford." - Stephen Colbert
Verwijderd
De opzet van het script van RM-rf is wel goed, er zitten alleen wat typfoutjes in.
en
Dat werkt bij mij tenminste in IE6.
code:
1
2
3
| elm.style.backgroundInage = "blaat.gif" // had moeten zijn: elm.style.backgroundImage = "url(blaat.gif)" |
en
code:
1
2
3
| if (elm.tagName = "TD") // had moeten zijn: if (elm.tagName == "TD") |
Dat werkt bij mij tenminste in IE6.
Beetje offtopic maar wat ik altijd een iets veiliger idee vind is dit:Verwijderd schreef op 23 augustus 2002 @ 16:11:
De opzet van het script van RM-rf is wel goed, er zitten alleen wat typfoutjes in.
code:
1 2 3 if (elm.tagName = "TD") // had moeten zijn: if (elm.tagName == "TD")
Dat werkt bij mij tenminste in IE6.
JavaScript:
1
| if(elm.tagName.toLowerCase == "td") |
Verwijderd
2 schreef op 23 augustus 2002 @ 17:02:
Beetje offtopic maar wat ik altijd een iets veiliger idee vind is dit:
JavaScript:
1 if(elm.tagName.toLowerCase == "td")
Het is inderdaad offtopic, maar dat moet niet zoveel uitmaken zolang je een nuttige bijdrage levert
Ik heb er zelf ook nog even over nagedacht om het naar lowercase om te zetten. Het is eigenlijk ook erg zot dat browsers als IE de tags intern gaan omzetten naar hoofdletters. Waarom dat is? Ik weet het niet, maar ik vind het erg ongewenst.
volgens de DOM level1 specificatie is dat overdone:
http://www.w3.org/TR/1998...ne-html.html#ID-822762427
http://www.w3.org/TR/1998...ne-html.html#ID-822762427
2.5.3. Exposing Element Type Names (tagName)
The element type names exposed through a property are in uppercase. For example, the body element type name is exposed through the "tagName" property as "BODY".
Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen
Verwijderd
RM-rf schreef op 23 augustus 2002 @ 19:51:
volgens de DOM level1 specificatie is dat overdone:
http://www.w3.org/TR/1998...ne-html.html#ID-822762427
Dat verklaart wel een hoop, in HTML DOM is een tagName dus in uppercase. Ik ben de laatste tijd wel bezig geweest met XML DOM, daar is de tagName van een Element node case-sensitive.
Maar goed, dan doen de browsers dat in ieder geval correct bij HTML documenten. Helaas zetten ze ook van XHTML documenten de tagNames om naar uppercase. In bepaalde gevallen mag dat wel, bijvoorbeeld als er geen processing instruction in de vorm van een XML declaratie bovenaan in het document staat, maar dat zullen we maar laten voor wat het is.
Ik zie het overigens nu ook in de Working Draft van DOM level 3 Core staan.
Omzetten naar lowercase is dus inderdaad niet nodig, aangezien die tagName uppercase behoort te zijn.Note that this is case-preserving in XML, as are all of the operations of the DOM. The HTML DOM returns the tagName of an HTML element in the canonical uppercase form, regardless of the case in the source HTML document.
Maar is het niet aannemelijk om te denken dat in de toekomst dit wellicht zal veranderen naar lowerCase, omdat XML met lowercase characters werkt?
Pagina: 1