Leser: 3
![]() |
|< 1 2 3 4 >| | ![]() |
40 Einträge, 4 Seiten |
onmouseover
1
2
3
4
5
6
7
8
9
10
11
addEvent: function(objRef, eventType, functionToCall, captureSwitch) {
if (objRef.addEventListener) {
if(objRef.style)objRef.style.backgroundColor = '#ff0'; // <-- Diese
objRef.addEventListener(eventType, functionToCall, false);
return true;
} else if (objRef.attachEvent) {
return objRef.attachEvent("on"+eventType, functionToCall);
} else {
return false;
}
},
1
2
3
4
5
6
if(BrowserDetect.browser == 'Opera'){
thisNode.setAttribute("style","text-decoration: none; border: none; ");
if(thisNode.parentNode.id == 'top_nav'){
return;
}
}
KFSWScreen.activateLinks(document.getElementsByTagName('*'));
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
activateLinks: function (nodes) {
for(var i = 0; i < nodes.length; i++) {
var thisNode = nodes[i];
var evRes;
if(thisNode.tagName.toUpperCase() == 'A'){
if(thisNode.href == KFSWScreen.selfURL){
/* alert(thisNode) */;
thisNode.className = "current";
}
KFSWFunctions.addEvent(thisNode, "mouseover", KFSWScreen.mouseOverLinks, false);
KFSWFunctions.addEvent(thisNode, "mouseout", KFSWScreen.mouseOutLinks, false);
KFSWFunctions.addEvent(thisNode, "click", KFSWScreen.mouseClickLinks, false);
}
}
}
1
2
3
4
5
6
7
8
9
closeInfoPopup: function() {
var divs = document.getElementsByTagName("div");
var reg = new RegExp('\\binfopopup\\b', 'i');
for(var i=0;i<divs.length;i++){
var this_div = divs[i];
if(reg.test(this_div.className) )
this_div.parentNode.removeChild(this_div);
}
},
Struppi+2009-01-08 10:20:23--Die CSS Eigenschaften werden in JS in der CamleCase-schreibweise benutzt
http://de.selfhtml.org/javascript/objekte/style.ht...
und es gibt zwei, drei Eigenschaften, die mit JS Schlüsselwörtern kollidieren, z.b. class oder float, diese heißen dann className bzw. cssFloat
Und alle Eigenschaften sind in JS Case sensitive, d.h. der Eventhandler heißtCode: (dl )onmouseover
So, jetzt guck ich mal warum die Events nicht aufgerufen werden im Opera.
Struppi+2009-01-08 10:51:35--1. Der dritte Parameter der Methode addEventListener(); muss false sein, dann funktionieren die Events auch im Opera.
QuoteÜbrigens braucht kein Opera eine extra Behandlung was die style Attribute angeht, da sind deine Browserweichen überflüssig.
kristian+2009-01-08 06:36:04--Da ich im Moment nicht mal mehr weiß welcher Browser da warum gemeckert hat, werde ich mir den Part in einer ruhigen Minute noch mal ansehen.
Struppi+2009-01-08 11:00:55--OK, das letzte Problem ist diese Abfrage:
Code: (dl )1
2
3
4
5
6if(BrowserDetect.browser == 'Opera'){
thisNode.setAttribute("style","text-decoration: none; border: none; ");
if(thisNode.parentNode.id == 'top_nav'){
return;
}
}
Die dazu führt, dass einige Links nicht erfaßt werden.
thisNode.setAttribute("style","text-decoration: none; border: none; ");
Struppi+2009-01-08 11:00:55--Zusammengefaßt würde ich die Funktion activateLinks() so schreiben:
Der Aufruf um alle Elemente zu erfassen:
Code: (dl )KFSWScreen.activateLinks(document.getElementsByTagName('*'));
Die Funktion:
Code: (dl )1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16activateLinks: function (nodes) {
for(var i = 0; i < nodes.length; i++) {
var thisNode = nodes[i];
var evRes;
if(thisNode.tagName.toUpperCase() == 'A'){
if(thisNode.href == KFSWScreen.selfURL){
/* alert(thisNode) */;
thisNode.className = "current";
}
KFSWFunctions.addEvent(thisNode, "mouseover", KFSWScreen.mouseOverLinks, false);
KFSWFunctions.addEvent(thisNode, "mouseout", KFSWScreen.mouseOutLinks, false);
KFSWFunctions.addEvent(thisNode, "click", KFSWScreen.mouseClickLinks, false);
}
}
}
Dann klappt es zumindest bei mir lokal auch mit Opera.
kristian+2009-01-08 11:53:50--Nein, ich habe hier 9.23Wenn die Events in deinem Opera gar nicht wollen tippe ich, das du einen 8.x benutzt?
objRef.addEventListener(eventType, functionToCall, true);
objRef.addEventListener(eventType, functionToCall, false);
![]() |
|< 1 2 3 4 >| | ![]() |
40 Einträge, 4 Seiten |