Add element to a List

  • Hey! Ich versuch gerade aus eine Liste mit such Funktion rauszufiltern den Element nach dem man sucht und drauf clicken und diesen Element auf ein List hinzufügen. Es funktioniert bis man ein anderes Element auswählt und dann wird der alte ersetzt aber ich möchte dass der neuer Element noch dazu kommt und nicht den alten ersetzt. Ich weiß es ist ein bisschen schwierig das alles Vorzustellen aber kann jemand Irgendein verdacht haben wo das Problem liegen kann? Danke!!

  • Ja das kann vieles sein.Zb du überschreibst den alten und fügst nicht hinzu.Oder was auch immer.Zeig doch mal deinen vollständigen Code dann kann man besser helfen

  • Ja du hast recht. Also auf diese Funktion werde ich diesen neue element und will in eine Liste Hinzufügen. Mit den Code wird dieser neue Elment in die Liste schon hinzugefügt aber wie gesagt wenn ich eine andere klicke dann wird ersetzt. Ich hab es so probiert mit diesen Teil dass ich auskommentiert habe aber bekomme ein error.

  • Ich kann den ganzen code hochladen aber da sind 5 JS Dateien. Es funktioniert so wie du es gesagt hast nur das Problem jetzt ist dass beim zweiten Auswahl 2 Elemente auf die liste hinzugefügt werden und beim dritten dann 3 usw. Wi könnte ich das Lösen?

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von regtan () aus folgendem Grund: Ich glaube das Problem liegt nicht an diese Methode sondern irgendwo anderen Teil des Codes :(

  • Jetzt weiss ich wie du das meinst. Ja da warten wir mal ab bis wer anderes was sagt dazu.Ich wüsste jetzt keinen weg ohne den rest zu sehen.Mit den Code schnipsel komme ich persönlich nicht weiter.

    Aber mal abwarten ,die anderen sagen bestimmt auch noch was dazu.

  • Zitat

    das Problem jetzt ist dass beim zweiten Auswahl 2 Elemente auf die liste hinzugefügt werden und beim dritten dann 3 usw.

    Das liegt daran, dass Du jedes Mal ein Element zu birdChose hinzu fügst:

    Code
    1. birdChose += list.replace("<%= latinName %>", latinName)

    Wenn Du das Plus weg nimmst, sollte es funktionieren:

    Code
    1. birdChose = list.replace("<%= latinName %>", latinName)
  • Ich hatte das auch probiert aber es passiert trotzdem

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von regtan () aus folgendem Grund: ich hatte nicht richtig geachtet aber es werden immer unterschiedlich viele Elemente hinzugefügt. Also wenn ich nach irgendein element suche dann werde unterschiedlich viel in die Liste hinzugefügt es kann sein das beim 2. Element die ich hinzufügen möchte werden statt einer, 6 oder 3 oder 4 von den Elementen hinzugefügt

  • Am besten wäre es, wenn man das im Zusammenhang sehen könnte. Mach doch eine ZIP-Datei mit der HTML- und den JS-Dateien und poste sie als Anhang. Bilder kannst Du weg lassen, weil sonst die Datei u. U. zu groß wird.

  • Ich hab aber alle Fotos gelöscht da es zu groß wäre. Und ich glaube das Problem liegt bei der verknüfung der Funktionen.

    Dateien

    • Projekt.zip

      (671,03 kB, 3 Mal heruntergeladen, zuletzt: )
  • Zitat

    drauf clicken und diesen Element auf ein List hinzufügen.

    Suchfunktion funktioniert. Wo drauf klicken? Auf das + Zeichen oder das ganze Feld?

    Und in welcher JS-Datei findet man den Code, den Du oben gepostet hast?

  • Ja da ist ein list und soll dazu gefügt werden. Plus und minus button funktioniert immer noch nicht. der eventlistener ist bei birdingmodel und birdsearch methode, und wird nicht mehrmals aufgerufen, soweit ich es verstehe.

  • ich bekomme nee fehlermeldung wenn ich plus klicke.

    BirdingModel.js:40 Uncaught TypeError: Cannot read property 'addBirdToCounter' of undefined

    at HTMLSpanElement.addNewBird (BirdingModel.js:40)


    da höhrt es auf ,ich komme nicht mal bis zum sortieren.

  • Das Problem scheint mir hier zu sein:

    Diese Funktion wird jedes Mal aufgerufen, wenn sich im Eingabefeld etwas ändert. Und jedes Mal wird der Eventlistener mit addNewBird hinzugefügt. Du darfst diesen Listener nur einmal hinzu fügen, wenn Du die Liste anlegst.