alert();
open('https://google.com', '_self');
prompt("What's your name?");
Math.random();
DOM (Document Object Model) = JavaScript-API für Interaktion mit dem HTML-Inhalt
document.getElementById()
document.querySelector()
element.innerHTML =
element.style
element.className
element.classList
(.add
, .remove
, .toggle
, .contains
)document.createElement()
element1.appendChild(element2)
element1.removeChild(element2)
element2.remove() // not IE
setTimeout()
setInterval()
element.addEventListener('click', ...)
Beispiel: Todo-Liste
debugger
Statement
Breakpoints:
Manuell weiterspringen:
Beobachten von Variablen
for ... of
getElementById
/ getElementsByClassName
/ querySelectorAll
addEventListener
innerText
/ innerHTML
preventDefault
Elemente, die standardmäßig "draggable" sind:
Frage: praktische Anwendung? / Wohin können wir ziehen?
weitere Elemente "draggable" machen:
<div draggable="true">drag me!</div>
welche Drag-Events gibt es?
und auf welchen Elementen werden diese ausgelöst?
Events des "bewegten" Elements:
Events des Ziels:
Ãœbung: mehrere "draggable" Elemente, die jeweils anzeigen, wie of sie schon "gedraggt" wurden
"drop" auf Elementen erlauben:
bei "dragenter" und "dragover" Events des Ziels .preventDefault()
aufrufen
function onDragEnter(event) {
event.preventDefault();
}
function onDragOver(event) {
event.preventDefault();
}
auf "drop" reagieren:
function onDrop(event) {
event.preventDefault();
event.target.innerText += ' drop ';
}
Übung: ein Element das mitzählt, wie oft auf es gedroppt wurde
Bei "drag start" Daten bestimmter Formate mitgeben:
function onDragStart(event) {
event.dataTransfer.setData('text/plain', 'foo bar');
event.dataTransfer.setData(
'text/html',
'<em>foo</em> bar'
);
}
Beispiel: Draggen von HTML-Inhalten nach Word und in einen Plain-Text-Editor
bei "drag start" Daten eines Bestimmten Types mitgeben:
function onDragStart(event) {
event.dataTransfer.setData('text/plain', 'foo');
}
bei "drag end" Daten auslesen:
function onDrop(event) {
event.preventDefault();
const data = event.dataTransfer.getData('text/plain');
}
Übung: verschiedene Produkte, die in den Einkaufswagen gezogen werden können
Wir können auch ein ganzes Element durch drag and drop in ein anderes Element verschieben lassen
Verfahren: Der Dateneintrag, der übergeben wird, kann die ID des Elements sein - basierend darauf können wir das verschobene Element in sein neues Elternelement verschieben