Eher nicht, das zweite meta-Tag mit charset=iso8859-1 löschen. Ich erwarte, dass es das erste mit utf-8 überschreibt.
Beiträge von Sempervivum
-
-
Ändere den Beginn deines HTML so:
HTML<!DOCTYPE HTML> <html> <head> <title>www.homepage-vorlagen-webdesign.de/homepagevorlagen Homepagevorlage Nr. 12 Orange juice</title> <meta charset="utf-8">
Siehe auch:
https://wiki.selfhtml.org/wiki/HTML/Kopf…eichencodierung
Und dann die Datei als UTF-8 speichern. Wie das mit deinem Editor geht, musst Du selbst heraus finden. I. allg. kann man es im Speichern-Unter-Dialog einstellen.
-
Geht mir genau so. Sofern es sich um das reine Setzen und Auslesen einer Variablen handelt, kann ich keinen Nutzen erkennen. Anders sieht es aus, wenn zwingend mit dem Setzen der Variablen weitere Aktionen verbunden sein müssen, z. B. Variable abc setzen erfordert gleichzeitig Aktion x und Aktion y. Dann ist ein Setter durchaus sinnvoll.
-
Google findet zu dieser Fehlermeldung einiges, z. B. dies:
-
PPS: Etwas eleganter kann man diesen Überschwinger mit einer geeigneten Timing-Function realisieren:
-
-
-
-
In dem Fall dürfte dir animation-delay weiterhelfen:
https://wiki.selfhtml.org/wiki/CSS/Eigen…animation-delay
damit kannst Du die einzelnen Animationen verzögern, so dass sich der richtige Ablauf einstellt.
-
Du hast da zwei Elemente mit der ID "xfield". Für den Anfang ist es wahrscheinlich am einfachsten, wenn Du die IDs eindeutig machst und an die Funktion myRange() übergibst:
Code
Alles anzeigen<form oninput=myRange(parseInt(a.value),parseInt(b.value), "xfield1");> 0<input type="range" id="a" value="50">100 +<input type="number" id="b" value="50"> =<output name="x" id="xfield1" for="a b"></output> </form> <br> <form oninput=myRange(parseInt(c.value),parseInt(d.value), "xfield2");> 0<input type="range" id="c" value="25">100 +<input type="number" id="d" value="25"> =<output name="x" id="xfield2" for="c d"></output> </form> </body> <script> function myRange(a1, a2, idout) { var x = document.getElementById(idout); x.value = a1 + a2; } </script>
-
Ich bin da nicht bis ins letzte Detail eingestiegen, aber mir scheint, das Problem liegt darin, dass die Eventlistener für die accuButtons innerhalb des Click-Handlers für #button-cart registriert werden. D. h. bei jedem Klick auf #button-cart kommt jeweils ein neuer Eventhandler dazu, so dass es immer mehr Eventhandler gibt, die getriggert werden.
-
Bei dir heißen die Daten ja chartdata. Willst Du diese komplett austauschen, müsste es so aussehen:
barGraph.data = chartdata;
Willst Du die Labels beibehalten, so:
barGraph.data.datasets = chartdata.datasets;
alles ungetestet.
-
Wie ich gerade sehe, habe ich da ein wenig daneben gelegen: Es ist sehr einfach, die Daten einfach zu überschreiben, wie dieses Beispiel aus dem Handbuch zeigt:
-
Ah so. Du hast ja dieses, um den Chart aufzubauen:
Die Variable barGraph ist dabei im success-Handler deines Ajax-Aufrufes gekapselt und Du kannst später nicht darauf zugreifen. Daher muss Du sie zunächst global machen, indem Du das var wegnimmst und sie stattdessen außerhalb des Dokument-Ready definierst:
var barGraph;
Anscheinend ist es nicht möglich, einfach die Daten zu überschreiben; an dieser Stelle merke ich, dass es einfacher ist, den Chart neu anzulegen, anstatt ihn zu aktualisieren. Damit dann nicht alte Daten herum geistern, wie Du es bei dem Mouseover hast, musst Du den alten Chart vorher löschen. Auch dafür gibt es eine Funktion:
https://www.chartjs.org/docs/latest/developers/api.html
Also barGraph.destroy();
Dann kannst Du den neuen Chart genau so neu erzeugen wie beim ersten Mal.
-
Zitat
Wer kann mir helfen?
Am besten das Handbuch
Es gibt da eine Funktion update(), um einen Chart nach Änderung zu aktualisieren:
-
Ist das das Open-Source chart.js, was Du benutzt?
-
Vielleicht wird der Sinn klarer, wenn man es mit document.querySelector() vergleicht: Hier kann man auch ein anderes Element als document verwenden und der Selector im Parameter wird dann nur innerhalb dieses Elementes gesucht. Z. B. so:
Codeconst thediv = document.getElementById("mydiv1"); const thespan = thediv.querySelector("#myspan1"); // das Element #myspan1 wird innerhalb von #mydiv1 gesucht
Bei getElementById geht das nicht, weil es eine ID immer nur einmal im Dokument gibt, aber ich vermute, dass man es aus Gründen der Einheitlichkeit so belassen hat, dass das document davor gestellt werden muss.
-
Angesehen habe ich es mir aber leider verstehe ich es nicht: Es ist entweder das Menü oder das Hamburger-Icon sichtbar. Wie kann da das Menü das Icon überdecken?
-
Zitat
Solltest du also in deinem Code über eines der Elemente mit deinem Mauszeiger gehen, wird dir immer das letzte Element der For Loop angezeigt.
Hast Du das getestet oder ist das eine Mutmaßung? Wenn man let statt var verwendet, passiert das nicht und es braucht keine Klimmzüge.
-
Wenn ich mal deinen kryptischen Code außen vor lasse und nur dies lese:
Zitatich möchte gerne ein mouseover Event für eine vordefinierte Klasse erstellen.
müsste dieser einfache und geradlinige Code doch tun, was Du vorhast:
Codevar shadows = document.getElementsByClassName('shadow-primary'); for (let i = 0; i < shadows.length; i++) { const theShadow = shadows[i]; theShadow.addEventListener('mouseover', funktion() { console.log(i, this); }); theShadow.addEventListener('mouseout', funktion() { console.log(i, this); }); }