Gast1234: mit "Entf"-Taste makiertes Element löschen

Hallöchen,

kann ich mit JS ein Element markieren und dann per "Entf"-Taste löschen?
Wenn ja wie, weil ich glaub mit onkeydown oder so komm ich da nicht weiter oder?

dankö

  1. Om nah hoo pez nyeetz, Gast1234!

    kann ich mit JS ein Element markieren und dann per "Entf"-Taste löschen?

    Sicher.

    Wenn ja wie, weil ich glaub mit onkeydown oder so komm ich da nicht weiter oder?

    "glaub"?? "oder so"?? Was hast du denn schon alles gemacht? Was hat an welcher Stelle nicht wie erwartet funktioniert?

    Matthias

    --
    1/z ist kein Blatt Papier.

    1. "glaub"?? "oder so"?? Was hast du denn schon alles gemacht? Was hat an welcher Stelle nicht wie erwartet funktioniert?

      bisher gegoogelt auf mehreren Seiten bin aber nicht fündig geworden.
      Ich hab mir gedacht kann ja nur mit onkeydown funktionieren aber wie sage ich der JS-funktion das es nur bei der Entf-tase passieren soll und wie markiere ich das entsprechende Element um auch nur das zu löschen.

      Ich weiß auf jedenfall das ich mit onkeydown eine JS-funktion aufrufen sollte.

      1. Moin,

        bisher gegoogelt auf mehreren Seiten bin aber nicht fündig geworden.

        Also ich schon.
        http://www.brain4.de/programmierecke/js/tastatur.php
        https://developer.mozilla.org/en-US/docs/DOM/element.addEventListener

        Grüße Marco

        1. Moin,

          ich hab sogar mal aus Spaß ein Beispiel gebaut:

          Beispiel

          Grüße Marco

          1. Hi,

            du hast meine Shortcuts kaputt gemacht :-(

            Wenn das nicht nur ein "Proof-of-concept" wäre bekämst du von mir -10 Punkte auf dein Usability-Konto

            ~dave

            1. Moin,

              du hast meine Shortcuts kaputt gemacht :-(

              Ist behoben :)

              Grüße Marco

              1. ok dann danke ich erstmal dave und kai für die ausgiebigen Meinungen!

                und natürlich misterunknown für sein Beispiel was mir deutlich weiterhilft!

                1. Moin,

                  und natürlich misterunknown für sein Beispiel was mir deutlich weiterhilft!

                  Ich habe noch einen Link gefunden, der dir vielleicht bezüglich der Auswahl per Rechteck, welches mit der Maus aufgezogen wird, weiterhilft.

                  http://javascript.jstruebig.de/test/bildauschnitt markieren.html

                  Grüße Marco

                  1. und natürlich misterunknown für sein Beispiel was mir deutlich weiterhilft!

                    Ich habe noch einen Link gefunden, der dir vielleicht bezüglich der Auswahl per Rechteck, welches mit der Maus aufgezogen wird, weiterhilft.

                    http://javascript.jstruebig.de/test/bildauschnitt markieren.html

                    fett! thx

          2. Beispiel

            ja genau, das habe ich gesucht. erstmal ein großes Dankeschön für das Beispiel...

            ich hab googlen wirklich nicht gefunden, hab aber auch nur suchbegriffe wie "element mit Javascript per tastendruck löschen" gesucht.

            du hast also jquery mit eingebunden, ich weiß das ist eine feine Sache aber ich wollte es eher vermeiden mich auf eine fremde Lib zu verlassen.

            Wie ich sehe ist auch gleich eine Mehrfachauswahl möglich, könnte man hier gleich das wie bei desktopsymbolen machen und eine mehrfachauswahl indem man viereck darum zieht, ermöglichen?

            1. Moin,

              du hast also jquery mit eingebunden, ich weiß das ist eine feine Sache aber ich wollte es eher vermeiden mich auf eine fremde Lib zu verlassen.

              Du kannst auch alles selbst schreiben. jQuery ist nur die komfortablere Möglichkeit. Ich muss übrigens sagen, dass ich mich selbst auch lange gegen jQuery gesträubt habe, weil ich auch lieber alles selbst mache, erstens wegen dem Lerneffekt und zweitens wegen der Variabilität.
              Aber es erspart wirklich unheimlich viel Arbeit (vor allem Schreibarbeit); und wenn man weiß, wie es funktioniert, ist es IMHO ok ein Framework zu nutzen.

              Und jQuery nutze ich auch nur, um die Auswahl zu treffen (also um die Klasse "selected" umzuschalten). Das ließe sich auch relativ einfach ohne jQuery hinbekommen. Alles andere ist schon selbst geschrieben.

              Wie ich sehe ist auch gleich eine Mehrfachauswahl möglich, könnte man hier gleich das wie bei desktopsymbolen machen und eine mehrfachauswahl indem man viereck darum zieht, ermöglichen?

              Möglich ist generell fast alles. Aber so etwas umzusetzen ist nicht ganz einfach. Ich wüsste jetzt auf Anhieb nicht, wie ich das machen sollte. Aber mit etwas googeln findest du da sicherlich den ein oder anderen Anhaltspunkt.

              Grüße Marco

              1. [latex]Mae  govannen![/latex]

                du hast also jquery mit eingebunden, ich weiß das ist eine feine Sache aber ich wollte es eher vermeiden mich auf eine fremde Lib zu verlassen.

                Du kannst auch alles selbst schreiben. jQuery ist nur die komfortablere Möglichkeit. Ich muss übrigens sagen, dass ich mich selbst auch lange gegen jQuery gesträubt habe, weil ich auch lieber alles selbst mache, erstens wegen dem Lerneffekt und zweitens wegen der Variabilität.
                Aber es erspart wirklich unheimlich viel Arbeit (vor allem Schreibarbeit); und wenn man weiß, wie es funktioniert, ist es IMHO ok ein Framework zu nutzen.

                Jein. Ich persönlich halte zwar aus historischen Gründen überhaupt nichts von jQuery, sehe aber den Nutzen für Entwickler. Allerdings muß man meiner Meinung nach immer den konkreten Anwendungsfall beachten. Letztendlich sind es zur Zeit ca. 92kB Code, die geladen, geparsed und tw. ausgeführt werden und Speicher benötigen. Insofern würde ich jQuery für dein Beispiel für extrem überdimensioniert halten, wenn ansonsten keine Verwendung stattfindet. Anders sieht es aus, wenn viel und/oder komplexe Funktionalität anfällt.

                Stur lächeln und winken, Männer!
                Kai

                --
                Wir sind die Schlumpf. Widerschlumpf ist schlumpflos. Wir werden Sie einschlumpfen.
                SelfHTML-Forum-Stylesheet
                1. Moin,

                  Jein. Ich persönlich halte zwar aus historischen Gründen überhaupt nichts von jQuery

                  Darf ich fragen warum?

                  Letztendlich sind es zur Zeit ca. 92kB Code, die geladen, geparsed und tw. ausgeführt werden und Speicher benötigen.

                  Das stimmt. Aber in der heutigen Zeit sind 92kB in Millisekunden durch die Leitung, selbst mit langsamer Verbindung.
                  Und dann muss man noch den Zeitaufwand für eine Lösung sehen: Für die Funktionalität des Löschens mit der Entfernen-Taste habe ich ca. eine bis zwei Stunden gebraucht. Ich habe auch schonmal eine Javascript-Bildergalerie geschrieben, dafür habe ich 2 Tage gebraucht. Der Code am Ende war zwar um Größenordnungen kleiner als der von jQuery, aber damit hätte es keine Stunde gedauert.

                  Fehlerbehebung in Javascript ist zwar immer komfortabler geworden (dank den Tools und Add-Ons von verschiedenen Browsern), aber trotzdem meiner Meinung nach eines der schwierigsten Unterfangen, und daher auch zeitaufwändig.

                  Insofern würde ich jQuery für dein Beispiel für extrem überdimensioniert halten

                  Das ist es zweifelsohne. Eigentlich habe ich das auch nur genutzt, um es zu probieren, denn ich habe mir gerade gestern zum ersten Mal ein jQuery-Tutorial durchgelesen :)

                  Grüße Marco

                  1. [latex]Mae  govannen![/latex]

                    Jein. Ich persönlich halte zwar aus historischen Gründen überhaupt nichts von jQuery

                    Darf ich fragen warum?

                    Nun ja, ich habe damals die Auseinandersetzungen in der Newsgroup comp.lang.javascript mitbekommen. Kurz zusammengefasst wurde Resig von den dortigen Experten vielfach auf (potentielle) Probleme (bspw mit zukünftigen Browsern) hingewiesen, die er meist ignoriert hat (show me where it fails). Mehrfach ist es dann auch genau so gekommen und Resig mußte bei einer neuen Browserversion schnell ein jQuery-Update stricken, da alle Scripte tatsächlich nicht mehr liefen. Oder die Nutzer mußten Scripte umschreiben ...
                    Seitdem hat jQuery (nicht nur bei mir) den Status Murks.

                    Und durch bspw. die jahrelange Rum-Eierei mit attr, obwohl schon _vor Jahren_ eine robustere Lösung bekannt ist erhärtet das. Aber diese Lösung wollte Resig ja partout nicht, denn sie wurde ja im verfeindeten comp.lang.javascript vorgeschlagen, und er hat gesagt von dort nimmt er keine Vorschläge entgegen. Aha, es ist also wichtiger, woher eine Lösung kommt, als daß jQuery robust läuft. Für mich genau so ein Spinner wie Hixie.

                    Letztendlich sind es zur Zeit ca. 92kB Code, die geladen, geparsed und tw. ausgeführt werden und Speicher benötigen.

                    Das stimmt. Aber in der heutigen Zeit sind 92kB in Millisekunden durch die Leitung, selbst mit langsamer Verbindung.

                    Die Übertragungszeit ist relativ uninteressant, da meist ja noch gzip o.ä. im Spiel ist. Aber der JS-Parser des Browsers muß halt ran. Und es belegt RAM und Cache (wobei das mit fortschreitender Technik der Hard-/Software sicherlich immer weniger relevant ist)

                    Und dann muss man noch den Zeitaufwand für eine Lösung sehen: Für die Funktionalität des Löschens mit der Entfernen-Taste habe ich ca. eine bis zwei Stunden gebraucht. Ich habe auch schonmal eine Javascript-Bildergalerie geschrieben, dafür habe ich 2 Tage gebraucht. Der Code am Ende war zwar um Größenordnungen kleiner als der von jQuery, aber damit hätte es keine Stunde gedauert.

                    Stimmt schon, aber für 70% der Anwendungen käme man auch mit einer Kollektion relativ kleiner browserübergreifender Standard-Funktionen (domready, xhr, addEvent, bind, curry, diverse kleine Helfer...) aus, die man vielfach im Netz findet.

                    BTW: Ich hab auch schon gesehen, daß jemand 3! Versionen jQuery, jQueryUI und noch ein paar andere Plugins eingebunden hat, und alles was man auf der Site fand war $('#foobar')… :(  Gut, das ist natürlich nicht jQuerys Schuld.

                    Fehlerbehebung in Javascript ist zwar immer komfortabler geworden (dank den Tools und Add-Ons von verschiedenen Browsern), aber trotzdem meiner Meinung nach eines der schwierigsten Unterfangen, und daher auch zeitaufwändig.

                    Insofern würde ich jQuery für dein Beispiel für extrem überdimensioniert halten

                    Das ist es zweifelsohne. Eigentlich habe ich das auch nur genutzt, um es zu probieren, denn ich habe mir gerade gestern zum ersten Mal ein jQuery-Tutorial durchgelesen :)

                    Bäh. Ecke => schämen!  ;)

                    Stur lächeln und winken, Männer!
                    Kai

                    --
                    Wir sind die Schlumpf. Widerschlumpf ist schlumpflos. Wir werden Sie einschlumpfen.
                    SelfHTML-Forum-Stylesheet
          3. Moin Meister, du bist ja echt überall unterwegs

            ich hab sogar mal aus Spaß ein Beispiel gebaut:

            Beispiel

            Ich fand das hier recht interessant muss aber feststellen das deine click-Lösung
            $(document).ready(function() { $("div").click(function(){ $(this).toggleClass('selected'); }); });
            nur bei Elementen funktioniert die bereits mit der Website geladen sind.

            liegt das an der JQuery-Lib selbst?

            1. Moin,

              Tschuldigung, den Post habe ich gerade erst entdeckt.

              Moin Meister, du bist ja echt überall unterwegs

              Ach^^ Wo denn noch?

              $(document).ready(function() { $("div").click(function(){ $(this).toggleClass('selected'); }); });
              nur bei Elementen funktioniert die bereits mit der Website geladen sind.
              liegt das an der JQuery-Lib selbst?

              Hm, ich gehe mal davon aus. Dieses Code-Schnipsel, war das erste, was ich jemals mit jQuery gemacht habe :) In diesem Fall ist es wohl allgemein besser, wie auch Kai schon schrieb, zu Fuß zu programmieren, will heißen: Ohne Framework.

              Beim Erstellen und Einbinden eines Elements müsste dann darauf geachtet werden, dass eine onclick-Funktion mitgegeben wird, die die Klasse "selected" hinzufügt oder entfernt.

              Mit jQuery ließe sich das aber sicherlich auch lösen. Ich könnte mir beispielsweise vorstellen, dass man beim Erstellen eines Elements einfach dem onclick-Attribut folgenden (nicht getesteten) Aufruf mitteilt:

              onclick="$(this).toggleClass("selected");"

              Grüße Marco

              1. Moin,

                onclick="$(this).toggleClass("selected");"

                Jetzt ist es auch getestet. Ich habe meine Testdatei aktualisiert.

                Grüße Marco

                1. [latex]Mae  govannen![/latex]

                  Jetzt ist es auch getestet. Ich habe meine Testdatei aktualisiert.

                  Zu viel TESTosteron? ;)

                  Stur lächeln und winken, Männer!
                  Kai

                  --
                  I am Pentium of Borg. Division is futile. You will be approximated.
                  SelfHTML-Forum-Stylesheet
                  1. Moin,

                    Zu viel TESTosteron? ;)

                    Mag sein^^ Ich seh das als kostenlose Übungsaufgaben an, die mich nicht nur im jeweiligen Fachgebiet besser machen, sondern auch in der Beantwortung von Fragen und dem Geben von Hinweisen.

                    Außerdem kommt noch erschwerend hinzu, dass ich mich jahrelang gegen Javascript gewehrt habe, was natürlich einige Bildungslücken zur Folge hat, die ich jetzt gern schließen möchte ;)

                    Grüße Marco