Verwenden Sie die Ereignisdelegierung, um die Message Board-Funktionalität zu implementieren. <!DOCTYPE html> <html lang="de"> <Kopf> <meta charset="UTF-8"> <meta http-equiv="X-UA-kompatibel" content="IE=edge"> <meta name="viewport" content="width=Gerätebreite, Anfangsmaßstab=1.0"> <title>Dokument</title> <Stil> * { Polsterung: 0; Rand: 0; } Körper { Breite: 100 %; Höhe: 100%; Hintergrund: rgb(65, 65, 63); } .Hintergrund { Breite: 700px; Höhe: 100%; Hintergrund: weiß; Rand: automatisch; Rand oben: 20px; } .Kopf, .Pop-Kopf { Höhe: 50px; Schriftgröße: 20px; Textausrichtung: zentriert; Zeilenhöhe: 50px; } .Name { Breite: 640px; Höhe: 40px; Schriftgröße: 20px; Rand: 10px 28px; Zeilenhöhe: 50px; Rahmenradius: 8px; Rand: 2px durchgezogenes RGB (139, 137, 137); Gliederung: keine; } .Inhalt, .pop-Antwort { Breite: 640px; Höhe: 150px; Schriftgröße: 22px; Rand: 10px 28px; Rand: 2px durchgezogenes RGB (139, 137, 137); Gliederung: keine; Rahmenradius: 8px; Größenänderung: keine; } .btn, .pop-btn { schweben: rechts; Höhe: 30px; Rand rechts: 28px; Rahmenradius: 6px; Gliederung: keine; Schriftgröße: 20px; Polsterung: 0 20px; Hintergrund: rgb(169, 238, 255); } h3 { Schriftgröße: 20px; Farbe: rgb(102, 102, 102); Hintergrund: rgb(205, 221, 248); Rand oben: 50px; Zeilenhöhe: 50px; Texteinzug: 30px; Schriftstärke: 545; } li { Listenstil: keiner; Breite: 640px; Schriftgröße: 22px; Rand: 15px 30px; } .Nachrichtenkopf { Anzeige: Flex; } .Nachrichtenkopf .Foto { Breite: 70px; Höhe: 70px; Hintergrund: rgb(6, 109, 134); Anzeige: Inline-Block; Randradius: 50 %; Textausrichtung: zentriert; Zeilenhöhe: 70px; Überlauf: versteckt; } .Nachrichtenkopf .Zeit { Rand links: 12px; } .liuyan, .Antwort p { Breite: 560px; /* Höhe: 76px; */ Zeilenhöhe: 50px; Anzeige: Block; Hintergrund: rgb(205, 221, 248); Schriftgröße: 20px; Rand links: 80px; Rahmenradius: 8px; Texteinzug: 15px; } .löschen { Breite: 60px; Höhe: 30px; Anzeige: Block; Zeilenhöhe: 30px; Rand links: 580px; /* Rand unten: 0px; */ Rahmenradius: 6px; Gliederung: keine; Schriftgröße: 15px; Hintergrund: rgb(169, 238, 255); } .Antwort { Breite: 60px; Höhe: 30px; Anzeige: Block; Zeilenhöhe: 30px; Rand oben: -29px; Rand links: 515px; Rahmenradius: 6px; Gliederung: keine; Schriftgröße: 15px; Hintergrund: rgb(169, 238, 255); } .popup { Breite: 100vw; Höhe: 100vh; Position: fest; Hintergrund: rgba(0, 0, 0, .3); links: 0; oben: 0; Z-Index: 10; Anzeige: Flex; Elemente ausrichten: zentrieren; Inhalt ausrichten: zentriert; Anzeige: keine; } .pop-Inhalt { Breite: 700px; Hintergrund: #fff; Rahmenradius: 10px; Überlauf: versteckt; Polsterung unten: 20px; } .Antwort p { Rand oben: 10px; Hintergrund: rgba(100, 100, 100, .1); } </Stil> </Kopf> <Text> <div Klasse="Hintergrund"> <div class="head">Nachrichtenbrett</div> <input class="name" type="text" placeholder="Bitte geben Sie Ihren Spitznamen ein"> <textarea class="content" placeholder="Bitte sprechen Sie zivilisiert..."></textarea> <button class="btn">Hinterlasse eine Nachricht</button> <h3>Was die Leute sagen</h3> <ul Klasse="Text"> <!-- <li> <div Klasse="Nachrichtenkopf"> <span class="foto">System</span> <p class="time">27.9.2019 0:47:38</p> </div> <p class="liuyan">Testnachricht</p> <div Klasse="Antwort"> <p>Testantwort</p> </div> <button class="delete">Löschen</button> <button class="answer">Antwort</button> </li> --> </ul> </div> <div Klasse="Popup"> <div Klasse="Pop-Inhalt"> <div class="pop-head">Antworttafel</div> <textarea class="pop-reply" placeholder="Bitte sprechen Sie zivilisiert..."></textarea> <button class="pop-btn huiFu">Antworten</button> <button class="pop-btn quXiao">Abbrechen</button> </div> </div> <Skript> //Bei der Ereignisdelegierung ist jedes if gleichbedeutend mit einer unabhängigen Funktion, da jeder Klick die Ereignisverarbeitungsfunktion erneut auslöst. var oAns; //Analyse: An wen wird die Veranstaltung delegiert? --- Gemeinsames übergeordnetes Element document.onclick = function (e) { //Ereignisverarbeitungsobjekt, kompatibel mit IE8 und niedrigeren Browserversionen e = e || event; // Ziel Ziel --- welches Tag es auslöst var target = e.target; //Hinterlasse eine Nachricht if(target.className === 'btn'){ //Objekt abrufen var nickname = $('.name').value; var Inhalt = $('.inhalt').Wert; //Beurteilen, ob die Eingabe leer ist, if(nickname && content){ //Ein Tag erstellen var oLi = document.createElement('li'); //Neuen Inhalt einfügen oLi.innerHTML = ` <div Klasse="Nachrichtenkopf"> <span class="foto">${Spitzname}</span> <p class="time">27.9.2019 0:47:38</p> </div> <p class="liuyan">${Inhalt}</p> <div Klasse="Antwort"> </div> <button class="delete">Löschen</button> <button class="answer">Antwort</button> ` //Füge die neueste Nachricht oben ein $('.text').insertBefore(oLi , $('.text').firstChild); //Countdown-Uhr (Ziel, 3); // Löschen Sie den Inhalt des Message Boards, nachdem Sie eine Nachricht hinterlassen haben $('.content').value = ''; }anders{ alert('Eingabe darf nicht leer sein!') } zurückkehren } //löschenwenn(target.className === 'löschen'){ //Löschen Sie die Nachrichttarget.parentNode.remove(); zurückkehren } //Antworten wenn(target.className === 'answer'){ //Popup-Fenster anzeigen$('.popup').style.display = 'flex'; //Suchen Sie den Ort, an dem auf die Nachricht geantwortet werden kann. oAns = target.previousElementSibling.previousElementSibling; zurückkehren } //Antwort bestätigen if(target.className === 'pop-btn huiFu'){ //Antwortinhalt abrufen var huiFuContent = $('.pop-reply').value; wenn(huiFuContent){ //Ein Tag erstellen var oP = document.createElement('p'); //Inhalt in das Tag einfügen oP.innerHTML = huiFuContent; //Antwort in den Nachrichtenbereich einfügen oAns.appendChild(oP); } //Popup-Fenster schließen$('.popup').style.display = 'none'; zurückkehren } //Antwort abbrechenif(target.className === 'pop-btn quXiao'){ $('.popup').style.display = 'keine'; zurückkehren } } //Countdown-Funktion Uhr (Element, Zeit) { wenn(!ele.disabled){ ele.disabled = true; ele.innerHTML = Zeit + 'Sie können nach s erneut eine Nachricht hinterlassen'; var t = setzeIntervall(Funktion () { Zeit-- ; ele.innerHTML = Zeit + 'Sie können nach s erneut eine Nachricht hinterlassen'; wenn(Zeit <= 0){ Löschintervall(t); ele.disabled = false; ele.innerHTML = 'Nachricht'; } },1000) } } //Holen Sie sich die Objektfunktion $(selector){ gibt document.querySelector(Selektor) zurück; } </Skript> </body> </html> ZusammenfassenDieser Artikel endet hier. Ich hoffe, er kann Ihnen helfen. Ich hoffe auch, dass Sie mehr Inhalt auf 123WORDPRESS.COM lesen können! Das könnte Sie auch interessieren:
|
<<: Erfahrungsaustausch durch einen Frontend-Supervisor mit 7 Jahren Praxiserfahrung
>>: Die Bedeutung der 5 Leerzeichenarten in HTML
Inhaltsverzeichnis 1: Webpack erstellen 2. Datend...
Python stellt eine Verbindung zu MySQL her, um Da...
Hintergrund Ursprünglich wollte ich ein 6.7 Vcent...
Frage: In einigen Browsern, wie zum Beispiel im K...
<iframe src="./ads_top_tian.html" all...
1. Overlay-Übersicht Overlay bedeutet Überlagerun...
1. Was ist In react Anwendungen werden Ereignisna...
Inhaltsverzeichnis Einführung Plätzchen Was sind ...
Das Konzept des relativen Pfades Verwenden Sie de...
Inhaltsverzeichnis Einführung Protokollklassifizi...
In „MySQL-Deadlock-Probleme anhand des Quellcodes...
Ich verwende tengine, das Installationsverzeichni...
1. CSS-Hintergrund-Tag 1. Stellen Sie die Hinterg...
Inhaltsverzeichnis Zyklus für für-in für-von währ...
DIV+CSS-Struktur Lernen Sie CSS-Layout? Sie beherr...