Ja stimmt hab auch gerade angeschaut ich überleg nur wo könnte ich es stellen da birdName nur hier eingesetzt wird?
Add element to a List
-
-
Und da heißt es immer, OOP verbessere die Wartbarkeit und Änderungsfreundlichkeit oder stelle sie gar sicher. Beides setzt Lesbarkeit voraus aber hier sucht man sich ja dumm und dämlich, bis man etwas gefunden hat.
-
Sorry! Ich bin aber immer noch am lernen und ich weiß es sieht nicht optimal aus
-
Oh, das tut mir Leid! Ich wollte dich nicht angreifen. Hatte vermutet, dass das ein Muster ist, das von der Aufgabe vorgegeben wurde. Weil Du in anderem Zusammenhang mal geschrieben hattest, dass Du etwas nicht anwenden kannst, weil die Aufgabe es anders verlangt.
-
Es waren nur die 5 Module vorgegeben aber die waren leer und ich sollte den code so schreiben dass ich in die 5 Module verteile und ich sollte diese Template die in HTML vorgegeben war benutzen. Ich weiß nur nicht wo ich diese Eventlistener stellen soll, da ich den funktion addNewBird brauche
-
Muss denn die Funktion addNewBird an die Suche gebunden sein? Einfacher wäre es, wenn Du sie dort definieren würdest, wo die Liste aufgebaut wird und wo der Listener registriert werden muss.
-
Lösung gefunde juhuuuuu
-
Hallo Jungs. Ich bräuchte noch hilfe könnt ihr mir bitte helfen diese audio datei ( die bei jedem vogel ein audiopath angegeben ist) irgendwie zu spielen wenn man den kursor über den vogel in lIste drauf geht. Es wäre mega cool. Danke danke!
-
Ich empfehle folgendes:
Die URL der Sounddatei in einem data-Attribut ablegen. Leider sieht dein Template keinen Platzhalter dafür vor, aber Du könntest es so einfügen:
Dann ein Audio-Objekt anlegen:
Und einen Eventhandler für Mouseover registrieren:
Code$("bird-list-entry img").on("mouseover", function() { var audiourl = $(this).data("sound"); aud.src = audiourl; aud.play(); });
Und bedenke, dass es auf Touch-Geräten kein Mouseover gibt. Besser wäre es, jeweils einen Play-Button anzubringen und damit den Klang zu starten.
-
Ich darf es erweitern. Das bedeutet ich darf auch ein playButton erstellen. Wie könnte ich das genau machen?
p.s.
Überlegen Sie sich selbstständig eine kreative oder hilfreiche Erweiterung der Anwendung und implementieren Sie diese. Für die Erweiterung können Sie z.B. die unter
resources/data/audio
abgelegten Audio-Dateien verwenden. -
Dann würde ich das Template so erweitern:
Code
Alles anzeigen<script type="text/template" id="bird-list-entry"> <li class="bird-list-entry" bird-id="<%= id %>"> <img src="<%= imagePath %>" class="bird-image" /> <div class="bird-description"> <span class="bird-name"><%= name %></span> <span class="bird-latin-name"><%= latinName %></span> </div> <span class="add-bird-button"> <i class="fa fa-plus-circle" aria-hidden="true"></i> </span> <span class="play-button" data-sound="<%= sound %>"> <i class="fa fa-play" aria-hidden="true"></i> </span> </li> </script>
Das Ersetzen des Platzhalters <%= sound %> kannst Du sicher selber machen.
Und der Eventlistener müsste dann so aussehen:
-
Ich hab das implementiert aber da bekomm ich ein fehler auf console:
BirdingModel.js:45 Uncaught TypeError: audiourl.play is not a function
at HTMLSpanElement.playSound
Bei audiourl kommt der src richtig raus aber dann wird nicht gespielt. Ich hab versucht auch auf HTML nach span play-button ein audio tag zu setzen aber trotzdem kommt der gleiche Fehler raus. Wo könnte das Problem liegen?
-
audiourl.play - offenbar rufst Du die Funktion play() auf audiourl auf, das ist ein String. Du musst sie auf dem audio-Element aufrufen: aud.play()
-
Code
audiourl = bird.getElementsByTagName("audio")[0].getAttribute("src"); console.log(audiourl); //nur zu überprüfen, kommt src raus z.B. resources/data/audio/feldsperling.ogg audiourl.play(); //es steht so bei und trotzdem kommt diese Fehlermeldung und ich auch so wie du es vorgeschlagen hast // und kommt der gleiche Fehlermeldeung
-
-
Cool jetzt geht, Danke vielmals Jetzt ist nur ein klein Problem ( sorry ich glaub ich verlang viel zu viel ) das Audiostück ist zu lang wie könnte ich es machen, irgendwie, das wenn an ein ander play drückst die vorherige stopt. Sorry nochmal.
-
Die einfachste Lösung ist, ein zentrales audio-Objekt zu verwenden, wie ich es früher vorgeschlagen habe: Posts 29 und 31.
-
Ich hab das von "click" in "mouseover" geändert aber es ist das selbe, die Audiodatei wird bis ende gespielt.
-
Ich hab mal bei Audio am ende controls benutzt und versuch irgendwie auf css-datei die richtige parameter zu stellen damit des auch bei design passt aber irgendwie kann ich den nicht kleiner machen. Geht das überhaupt?
-
bei video geht das ganz einfach https://jsfiddle.net/basti1012/wwxefet6/7/ . lade die audiodatein doch da rein geht ja auch . Oder irgendeiner weiss wie es mit audio kleiner geht ,irgendwie verstehe ich das auch nicht das das gerade nicht geht . Oder ich verstehe hier wieder Bahnhof
EDIT . Über CSS geht es aber
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!