lulu: Eventhandler

Huhu

ich suche eine Lösung für folgendes Problem:
Aus einer tabellarischen Ansicht mehrerer Datensätze soll man durch Klick auf die entsprechende Zeile einen einzelnen Datensatz auswählen können.
Das geht ja einfach per "onclick", allerdings können in der Zeile weitere Verweise, und auch Eingabefelder stehen.
Bei diesen soll der Event nicht "feuern".

Im Moment habe ich keine Idee wie, und ob, man das lösen kann ...

Hier ist eine Beispielseite dazu, da sollte es verständlicher sein.

http://www.maledivas.de/self/click.html

Danke für Eure Tipps

Viele Grüße

lulu

--
bythewaythewebsuxgoofflineandenjoytheday
  1. hi,

    Das geht ja einfach per "onclick", allerdings können in der Zeile weitere Verweise, und auch Eingabefelder stehen.
    Bei diesen soll der Event nicht "feuern".

    dann könntest du versuchen, diese um ein eigenes onClick-attribut zu erweitern, dass dafür sorgt, dass dieser klick abgefangen und nicht weiter nach oben in der event-hierarchie durchgereicht wird.

    gruß,
    wahsaga

    --
    I'll try being nicer if you'll try being smarter.
    1. Huhu wahsaga

      dann könntest du versuchen, diese um ein eigenes onClick-attribut zu erweitern, dass dafür sorgt, dass dieser klick abgefangen und nicht weiter nach oben in der event-hierarchie durchgereicht wird.

      Das klingt logisch, funktioniert aber leider nicht.
      Der "preview"-Link Auf der Beispielseite wird ja auch per "onclick"
      geöffnet.

      Viele Grüße

      lulu

      --
      bythewaythewebsuxgoofflineandenjoytheday
      1. hi lulu,

        warum soll das nicht funktionieren?
        könnte mir in etwa so ein konstrukt vorstellen (ungetestet) :

        *******************************
        function stopEvent(e)
        {
        if(!e){e=window.event;}
        if(e.stopPropagation)
        {e.stopPropagation();}
        else
        {e.cancelBubble=true;}
        }
        *******************************

        *******************************
        <tr class="lightrow" onclick="alert('Zeile ausgewählt');">
        <td>Argentinien (onclick)</td>
        <td><input type="text" name="A"></td>
        <td><a href="dummypopup.html" onclick="window.open(this.href,'preview','width=300,height=100'); stopEvent(); return false;" target="_blank">preview</a></td>
        </tr>
        *******************************

        gruß
        peter

        1. hi,

          scheint zu funktionieren, wenn die funktion mit:

          stopEvent(event);

          aufgerufen wird.

          gruß
          peter

        2. Huhu Peter

          e.stopPropagation();

          Das war der richtige Pfosten für meinen kleinen
          Gartenzaun ;-)

          Vielen Dank, jetzt funktioniert es so wie ich mir das
          vorgestellt habe.

          Wen es interessiert
          http://www.mozilla.org/docs/dom/domref/dom_event_ref32.html
          http://www.w3.org/TR/2001/WD-DOM-Level-3-Events-20010823/events.html#Events-Event-stopPropagation

          Viele Grüße

          lulu

          --
          bythewaythewebsuxgoofflineandenjoytheday
    2. Mögliche Lösungsansätze wären ggf. unterschiedliche z-indexe.
      Oder "löschen" des events nachdem er ausgelöst/ einmal ausgewertet
      wurde.
      Oder man steckt das in eine Funktion die auswertet wer das
      Elternelement des Event ist.   Oder .....?

      den letzen ansatz wuerde ich weiter verfolgen

      ... onClick="Show_Detail(this)"

      function Show_Details(element)
      {
      hier testen woher der event abgefeuert wurde

      • weitere aktionen
        }

      hth