ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
567
567
EMPFEHLEN
-
05.01.07 04:02 #1
- Registriert seit
- Jun 2005
- Beiträge
- 303
Hi
ich hab folgendes Problem:
Ich hab mir eine Funktion geschrieben, die auf IE und Mozilla ein Event via attachEvent und AddEventListener einem Objekt ein Event "auferlegt".
hier mal der Code:
Code :1 2 3 4 5 6 7 8 9
function addEvent( object, eventType, func) { if(object.attachEvent) eval("object.attachEvent('on'+ eventType, "+ func +");"); else if(object.addEventListener) eval("object.addEventListener(eventType, "+ func +", false);"); }
Und nun wird das erste Event für ein Div festgelegt:
Code :1
addEvent(document.getElementById("b"+buttonId), 'mousedown', 'startE');
Also bei Mausklick soll die Funktion "startE" ausgeführt werden. Dies funktioniert auch wunderbar im IE und Mozilla.
Die Funktion "startE" soll nun wiederrum 2 Events starten:
Code :1 2 3 4 5 6
function startE(e) { addEvent(this, 'mousemove', 'displayE'); addEvent(this, 'mouseup', 'stopE'); }
Und ab hier gibts dann das Problem.
Im Firefox funktionierts ganz normal.
Im IE allerdings nicht mehr.
Ich hab versucht in die Funktion startE ein alert einzubauen und dieses wird von beiden Browsern angezeigt.
Dann hab ich es in die Funktion displayE eingebaut und da wurde es nicht mehr angezeigt, obwohl ich die Maus bewegt hab nachdem ich geklickt hab.
Hab ich hier einen Fehler oder an was könnte es sonst liegen ?
mfg SimonErich
-
Hi,
das Problem ist das this in der Funktion startE. Damit wird nämlich das window-Objekt angesprochen
und nicht wie von Dir erwartet das auslösende Element. Überprüfen kannst Du das z.B., indem Du dem
Fenster einen Namen zuweist
und diesen in startE ausgeben lässt (alert(this.name)).Code :1
window.onload=function(){ window.name="DasFenster";}
Zur Lösung könntest Du das auslösende Element des event-Objekts verwenden. Nach einer unterscheidung der Typen
wird es den weiteren Eventfunktionen übergeben.
CiaoCode :1 2 3 4 5 6 7 8 9 10 11
function startE(objEvt){ // IE, Opera if(window.event){ objSrc = objEvt.srcElement; }else{ objSrc = objEvt.target; } addEvent(objSrc, 'mousemove', 'displayE'); addEvent(objSrc, 'mouseup', 'stopE'); }
QuaeseVielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
----
Der "Fortsetzungsroman" auf www.leuteforum.de
New kind to realize large scalable projects with jQuery: jQuery SDK
-
06.01.07 01:29 #3
- Registriert seit
- Jun 2005
- Beiträge
- 303
Hi vielen dank.
displayE wird nun ausgeführ in beiden Browsern.
Nur wie spreche ich die style EIgenschaften von diesem Objekt an ?
Früher hab ich dies mit this.style.top gemacht, doch nun geht dies nicht mehr und hab ich zum Beispiel folgenden Code drinn:
bekomm ich das einfach nur leer aus.Code :1 2 3 4 5 6 7 8 9 10 11 12
function displayE( eventObject) { if(window.event) obj = eventObject.srcElement; else obj = eventObject.target; alert (obj.style.top); }
Hat wer eine Idee bzw. weiß rat ?
Das komisch ist, dass es in FF und in IE so ist
Gruß SimonErich
-
Hi,
schon mal versucht, nur obj.style mit alert auszugeben? Bei mir wird dann angezeigt, dass das
style-Objekt existiert. Die Eigenschaft top wird allerdings nur dann angezeigt, wenn sie vorher auch
definiert wurde.
Ciao
QuaeseVielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
----
Der "Fortsetzungsroman" auf www.leuteforum.de
New kind to realize large scalable projects with jQuery: jQuery SDK
-
06.01.07 16:54 #5
- Registriert seit
- Jun 2005
- Beiträge
- 303
Hi
Nein funtzte auch nicht, und es hatte einen top Wert.
Aber ich bin draufgekommen, was es war
Ich hatte immer das Object zum Kindelement, des eigentlich gewollten.
Deshalb hab ichs jetzt so gelöst:
Code :1 2 3 4 5
// define object if(window.event) obj = eventObject.srcElement.parentNode; else obj = eventObject.target.parentNode;
Falls es eine bessere Methode gibt bitte hier posten
Danke für deine Hilfe.
Gruß SimonErich
Ähnliche Themen
-
jQuery - mehrere Events wahlweise um Funktion auszulösen?
Von shredder01 im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 09.09.10, 18:49 -
Zwei Events verknüpfen
Von Tonelli im Forum VisualStudio & MFCAntworten: 3Letzter Beitrag: 30.11.07, 22:00 -
Select Menu + zwei Events
Von tanja im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 04.06.05, 17:13 -
JComboBox: nach removeAllItems und addItem werden zwei Events abgefeuert
Von Billie im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 08.05.05, 22:00 -
Problem mit zwei Bedingungen in if-elseif-Funktion
Von qsrs im Forum PHPAntworten: 3Letzter Beitrag: 28.03.05, 15:10





Zitieren

Login





