Toon posts:

[js] Dom A href onmouseover actie probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik heb werkelijk geen idee hoe ik het volgende moet oplossen, de onmouseover moet een rollover laten zien met een normale link gaat het prima.

Hoe weeet ik wat "this" moet zijn in de mouseover functie. user.onmouseover=function(??element??)

Ik heb al geprobeerd een id te declareren en dan de getElementById maar dat werkt ook niet. De id wordt wel gealert maar daarmee kon ik niet de rollover aan de praat krijgen.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        var user = document.createElement("a")    
            user.onmouseover=function() {
                this.T_TITLE='Leden beheer'; 
                this.T_SHADOWWIDTH=7; 
                this.T_WIDTH=150;
                return escape('Klik hier voor meer informatie over de gebruiker.');
            }
            user.className='openUser'
            user.setAttribute('href','#');      
            user.onclick=function() {openUsr('+userID+');}; 
            user.appendChild(document.createTextNode(naam));             
            span1.appendChild(user);  
            
            td1.appendChild(span1);


svp wat hulp graag ik heb er wel wat dingetje over gevonden op codingForums maar waren niet afdoende, en hier zag ik niet iets wat hierop zou moeten lijken.

ik gebruik de tooltip van http://www.walterzorn.com

  • Eskimootje
  • Registratie: Maart 2002
  • Laatst online: 17:52
user.appendChild(document.createTextNode(naam));
moet naam hier niet tussen quotes staan? Ik zie nergens een variabele die naam heet.

Verwijderd

Topicstarter
Niet mijn hele script staat er op dus ook niet de var naam, de rest van het script werkt gewoon alleen de onmouseover in dit dom object werkt niet.

Thanks anyway

  • Eskimootje
  • Registratie: Maart 2002
  • Laatst online: 17:52
Laat dan even het hele script zien, of een linkje. Dan is het waarschijnlijk wat makkelijker te checken.

  • André
  • Registratie: Maart 2002
  • Laatst online: 11:13

André

Analytics dude

En als je het nou net zo toepast als Walter Zorn? Met deze code kunnen we helemaal niets, hoe moeten wij nou weten waat er fout gaat?

Verwijderd

Topicstarter
De onmouseover werkt niet. De "this" bevat geen object omdat het volgens mij in een dom object zit. Ik krijg geen foutmeldingen helemaal niks dus ik weet het zelf ook niet wat er aan de hand is!

Het gaat over dit stukje:
code:
1
2
3
4
5
6
            user.onmouseover=function() {
                this.T_TITLE='Leden beheer'; 
                this.T_SHADOWWIDTH=7; 
                this.T_WIDTH=150;
                return escape('Klik hier voor meer informatie over de gebruiker.');
            }


De link wordt gewoon aangemaakt dus dat gaat goed ik moet alleen het object user meegeven naar de functie.

  • Eskimootje
  • Registratie: Maart 2002
  • Laatst online: 17:52
code:
1
2
3
4
5
6
var targ;
if (!e) var e = window.event;
if (e.target) targ = e.target;
else if (e.srcElement) targ = e.srcElement;
if (targ.nodeType == 3) // defeat Safari bug
targ = targ.parentNode;


Nu kun je daarna aan targ die T_TITLE etc. toekennen.

Verwijderd

Ik denk dat je het beste die hele onclick er uit kunt laten, en je gebruik kunt gaan maken van event listeners.

code:
1
user.addEventListener("mouseover",functie,true);


Bij een mouseover wordt dan je functie aangeroepen, met een zgn event object. Hieruit kun je eenvoudig een handle naar de link krijgen.

code:
1
2
3
4
5
function functie(event)
{
    var link=event.target;
    // doe hier iets met link
}

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 16:18

crisp

Devver

Pixelated

Vroeger werd er nogal eens IE-only code gepost; grappig om te zien dat er tegenwoordig oplossingen worden aangedragen die juist niet in IE werken ;)

Intentionally left blank


  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
this verwijst gewoon naar het element waaraan het event in gekoppelt. In dit geval dus het gecreerde a element. Je kunt extra objecten aan dat element koppelen om zo daar toch gebruik van te kunnen maken:
code:
1
2
3
4
5
6
7
var a = document.createElement("A");
var obj = {name: "blaat"};
a.obj = obj;
a.onmouseover = function()
{
  alert(this.obj.name);
}

Of is dit totaal niet wat je bedoelt?

[ Voor 5% gewijzigd door Michali op 30-06-2005 18:10 ]

Noushka's Magnificent Dream | Unity


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 16:18

crisp

Devver

Pixelated

Overigens werkt het prima als je in tt_Init() de NS6 check weghaalt in deze regel:
JavaScript:
1
if (typeof (t_tj = tags[j]).onmouseover == "function" && t_tj.onmouseover.toString().indexOf(esc) != -1 || (over = t_tj.getAttribute("onmouseover")) && over.indexOf(esc) != -1)

Intentionally left blank

Pagina: 1