![]() |
SELFHTML Forumsarchiv |
|
|
Die folgende Nachricht zum Thema stammt von: Benjamin, 31. 08. 2005, 16:24
Hallo Forum,
ich habe folgendes Problem: In unserem Intranet läuft eine Datenbankgestützte Oberfläche (mySQL/PHP). Es wird dabei über HTML eine seeehr lange und seeehr breite Tabelle ausgegeben, die einerseits die Daten in der Datenbanktabelle anzeigt, andererseits, indem sie Formularfelder enthält, die Möglichkeit zur Änderung bietet.
Zur besseren Übersicht habe ich in jedes <tr>-Element einen onclick-Eventhandler eingebaut, der beim Klicken eine Funktion aufruft, welche wiederum die Klasse des <tr>-Elementes austauscht - der Nutzer hat also die Möglichkeit, bestimmte Zeilen farbig hervorzuheben, damit er nicht "in der Zeile verrutscht".
Wie kann ich nun realisieren, dass der onclick-handler eben gerade _nicht_ aufgerufen wird, wenn ich in ein Formularfeld klicke um ihm den Fokus zu geben? (Sprich, der onclick-Handler soll _nur_ aufgerufen werden, wenn ich auf eine _freie_ Stelle in der Zeile klicke).
Ich hab keine Ahnung, wie ich sowas realisieren könnte, abgesehen davon, dass ich für jedes Unterelement von <tr> einen Handler definieren könnte, der die Klasse beim anklicken wieder zurücktauscht.
Info: Das ganze muss nur (sollte aber auch) im IE funktionieren, da hier niemand (außer ich ;) ) was anderes hat.
MfG Benjamin
Die folgende Nachricht zum Thema stammt von: lulu, 31. 08. 2005, 16:52
Huhu Benjamin
»» Info: Das ganze muss nur (sollte aber auch) im IE funktionieren, da hier niemand (außer ich ;) ) was anderes hat.
In aktuellen Browsern reicht ein Attribut onclick="event.stopPropagation();" im Tag des Inputfeldes.
Informationen ob, und wenn ja wie, man das für den IE nachbauen kann müssten im Web zu finden sein.
Guck mal z.B. da unter "Cancel the event bubble" nach.
http://webfx.eae.net/dhtml/ieemu/eventobject.html
Liest sich zumindest vielversprechend ...
Viele Grüße
lulu
--
bythewaythewebsuxgoofflineandenjoytheday
Die folgende Nachricht zum Thema stammt von: Benjamin, 31. 08. 2005, 17:13
Hi Lulu,
also ich habe jetzt mal in die Input-Felder ein
onclick="event.stopPropagation();"
geschrieben. Funzt bei meinem Opera. Wenn ich
onclick="event.stopPropagation(); event.stopBubble = true;"
angebe, müsste es ja eigentlich auch im IE gehen - klappt aber nicht.
Frage: Ich setze "stopBubble" bei _dem_ Element auf true, dass nicht nach oben in die Elternelemente blubbern soll - also beim <input>-Element (welches Unterelement von <tr> ist). Oder ist es umgekehrt? Oder hab ich was falsch verstanden?
MfG Benjamin
Die folgende Nachricht zum Thema stammt von: Benjamin, 31. 08. 2005, 17:24
Hi,
hat sich schon erledigt. Das Problem war, dass, wenn ich
onclick="event.stopPropagation(); event.stopBubble = true;"
schreibe, der IE nach "event.stopPropagation();" abbricht, da dies für ihn ein Fehler ist. Wenn ich nur
onclick="event.stopBubble = true;"
schreib, blubbert nix mehr.
Vielen vielen Dank.
MfG Benjamin
© 1998-2006
Impressum, Software: Classic Forum