jQuery fügt Seitendaten und Ereignisdelegierung dynamisch hinzu
In diesem Artikel werden hauptsächlich die relevanten Informationen zum dynamischen Anhängen von Seitendaten und zur Ereignisdelegierung vorgestellt. Interessierte Freunde können darauf verweisen.
Die Aufgabe, die wir ausführen möchten, besteht darin, dass am Anfang der Seite einige Bilder angezeigt werden. Klicken Sie auf den Link „Weitere Fotos“. Verlinken Sie erneut und fahren Sie mit dem Laden fort, bis die aufgelistete Seite geladen wird und der Link verschwindet.
Das erste Rendering sieht wie folgt aus:
Dadurch wird nur der untere Teil der Seite erfasst. Wenn Sie mit der Maus über das Bild fahren, erscheint Text, und wenn Sie die Maus herausbewegen, verschwindet der Text.
Was wir jetzt tun müssen, ist, einen anderen Teil der Daten zu laden, indem wir unten auf den Link „MehrFotos“ klicken, und dann auf „Laden eines anderen Teils der Daten“ zu klicken, bis die Daten geladen sind.
Zuerst lautet der Code im Textkörper wie folgt:
<p id = "container"> <h1> Photo Gallery</h1> <p id = "gallery"> <p class = "photo"> <img src = "./images/1.jpg"> <p class = "details"> <p class = "description">The Cullin Mountains, Isle of skye ....</p> <p class = "date">12/24/2000</p> <p class = "photographer"> Alasdair Dougall</p> </p> </p> <p class = "photo"> <img src = "./images/2.jpg"> <p class = "details"> <p class = "description">The Cullin Mountains, Isle of skye.... </p> <p class = "date">12/24/2000</p> <p class = "photographer"> Alasdair Dougall</p> </p> </p> <p class = "photo"> <img src = "./images/3.jpg"> <p class = "details"> <p class = "description">The Cullin Mountains, Isle of skye.... </p> <p class = "date">12/24/2000</p> <p class = "photographer"> Alasdair Dougall</p> </p> </p> //若干图片 </p> <p class = "link"><a id = "more-photos" href = "1.html"> More Photos >></a></p> </p>
Schreiben Sie dann mehrere HTML-Codeausschnitte zum Laden in dasselbe Stammverzeichnis.
Zum Beispiel habe ich einen 1.html-Code wie folgt
<p class = "photo"> <img src = "./images/1.jpg"> <p class = "details"> <p class = "description">The Cullin Mountains, Isle of skye </p> <p class = "date">12/24/2000</p> <p class = "photographer"> Alasdair Dougall</p> </p> </p> <p class = "photo"> <img src = "./images/2.jpg"> <p class = "details"> <p class = "description">The Cullin Mountains, Isle of skye </p> <p class = "date">12/24/2000</p> <p class = "photographer"> Alasdair Dougall</p> </p> </p> <p class = "photo"> <img src = "./images/3.jpg"> <p class = "details"> <p class = "description">The Cullin Mountains, Isle of skye </p> <p class = "date">12/24/2000</p> <p class = "photographer"> Alasdair Dougall</p> </p> </p> <p class = "photo"> <img src = "./images/4.jpg"> <p class = "details"> <p class = "description">The Cullin Mountains, Isle of skye </p> <p class = "date">12/24/2000</p> <p class = "photographer"> Alasdair Dougall</p> </p> </p> <p class = "photo"> <img src = "./images/5.jpg"> <p class = "details"> <p class = "description">The Cullin Mountains, Isle of skye </p> <p class = "date">12/24/2000</p> <p class = "photographer"> Alasdair Dougall</p> </p> </p> <p class = "photo"> <img src = "./images/6.jpg"> <p class = "details"> <p class = "description">The Cullin Mountains, Isle of skye </p> <p class = "date">12/24/2000</p> <p class = "photographer"> Alasdair Dougall</p> </p> </p>
In diesem HTML-Fragment habe ich 6 Bilder eingeführt. Andere Fragmente wie 2.html usw. können so geschrieben werden, dass sie das obige nachahmen. Nachdem Sie viele HTML-Fragmente definiert haben, verwenden Sie jQuery, um Daten dynamisch anzuhängen.
Stellen Sie zunächst eine JQuery-Bibliothek vor: http://libs.baidu.com/jquery/1.9.0/jquery.js
<script> $(document).ready(function(){ //首先定义一个变量来记录当前是多少页 var pageNum = 1; //给链接添加点击事件 $("#more-photos").click(function(event){ event.preventDefault(); var $link = $(this); //获得当前所点链接的url var url = $link.attr('href'); //如果该链接的url存在,进行页面追加 if(url){ $.get(url, function(data){ $("#gallery").append(data); }); pageNum ++; //总共有十个片段要追加,名称分别为1.html,2.html ...10.html 当当前页面的总数小于总数时,进行链接更新。 if(pageNum < 10){ $link.attr('href', './'+pageNum+'.html'); } //当将所有片段追加完成后,移除链接。 else{ $link.remove(); } } }) });
Das Obige Der Code kann Daten dynamisch an die Seite anhängen.
Aber der folgende Fehler wird im Google-Browser angezeigt:
jquery.js:8475 XMLHttpRequest kann Datei:///C:/Users/%E9%95 %BF% nicht laden E5%AD%99%E4%B8%B9%E5%87%A4/Desktop/webtest/1.html Cross-Origin-Anfragen werden nur für Protokollschemata unterstützt: http, data, chrome, chrome-extension, https .
Getestet in der IE10-Umgebung, kein Problem.
Die Lösung besteht darin, einen Webserver zu installieren, dann die Datei in das Projekt zu kopieren und über den Pfad im Webserver darauf zuzugreifen, und es wird kein Problem geben! Es sieht so aus: http://localhost:8080/ajax/ajaxLoad.html
Aufgrund des Mouse-Hover-Ereignisses wird Text angezeigt, wenn wir mit der Maus über ein Bild fahren auf dem Bild verschwindet beim Herausziehen.
$(document).ready(function(){ $('p .photo').hover(function(){ $(this).find('.details').fadeTo('slow', 0.7); },function(){ $(this).find('.details').fadeOut('slow'); }) });
Oder Sie können die oben genannten Codes kombinieren, um redundanten Code zu reduzieren:
$(document).ready(function(){ $('p.photo').on('mouseenter mouseleave', function(event){ var $details = $(this).find('.details'); if(event.type == 'mouseenter'){ $details.fadeTo('slow', 0.7); //0.7代表的是透明度 } else{ $details.fadeOut('slow'); } }) });
Wann Wann Wir verwenden die beiden oben genannten Codes, um jedem Bild Mausbewegungsereignisse hinzuzufügen. Nur die Bilder auf der Startseite werden an das Ereignis gebunden, das Ereignis wird jedoch nicht an die dynamisch geladenen Bilder gebunden. Da Ereignishandler nur zu Elementen hinzugefügt werden, die zum Zeitpunkt des Aufrufs der Methode bereits vorhanden sind, sind an Elemente wie solche, die über diese Methode dynamisch angehängt werden, diese Ereignisse nicht gebunden.
Es gibt also zwei Lösungen:
1. Binden Sie den Ereignishandler nach dem dynamischen Laden erneut.
2. Binden Sie das Ereignis zu Beginn an Ereignis sprudelt.
Der nächste Schritt besteht darin, die Delegate-Methode von jquery zu verwenden;
$(document).ready(function(){ $('#gallery').on('mouseenter mouseleave', 'p.photo', function(event){ var $details = $(this).find('.details'); if(event.type == 'mouseenter'){ $details.fadeTo('slow', 0.7); } else{ $details.fadeOut('slow'); } }) })
$('#gallery').on('mouseenter mouseleave', ' p .photo', Funktion (Ereignis), mit 'p.photo' als zweitem Parameter ordnet die .on()-Methode dies dem Element in der Galerie zu, das mit dem Selektor übereinstimmt. Mit anderen Worten: Dies ist das Element mit p class= 'photo' in gallery.
Da es sich also um alle Elemente unter der Galerie handelt, werden jedem Bild entsprechende Ereignisse hinzugefügt >
Aber es gibt noch andere Gründe, warum wir document als Delegationsbereich wählen.
Im Allgemeinen wird es nur dann angegeben, wenn das entsprechende DOM-Element geladen wird. Aus diesem Grund setzen wir Code innerhalb von $(document).ready(function(){}. Das Dokumentelement wird jedoch fast sofort aufgerufen, wenn die Seite geladen wird. Wenn Sie den Handler an das Dokument binden, müssen Sie nicht warten, bis die vollständige DOM-Konstruktion abgeschlossen ist. Zum Beispiel , der obige Code kann wie folgt geschrieben werden: '
Da nicht gewartet wird, bis das gesamte Dokument fertig ist, kann sichergestellt werden, dass alles fertig ist. p class= 'photo'>Solange das Element auf der Seite angezeigt wird, können Sie die Verhaltensweisen „mouseenter“ und „mouseleave“ anwenden.
(function($){ $(document).on('mouseenter mouseleave', 'p.photo', function(event){ var $details = $(this).find('.details'); if(event.type == 'mouseenter'){ $details.fadeTo('slow', 0.7); } else{ $details.fadeOut('slow'); } }) })(jQuery);
Verwandte Empfehlungen:
动态加载 <script> $(document).ready(function(){ var pageNum = 1; $("#more-photos").click(function(event){ event.preventDefault(); var $link = $(this); var url = $link.attr('href'); console.log(url); if(url){ $.get(url, function(data){ $("#gallery").append(data); }); pageNum ++; if(pageNum < 4){ $link.attr('href', './'+pageNum+'.html'); } else{ $link.remove(); } } }) }) // $(document).ready(function(){ // $('p .photo').hover(function(){ // $(this).find('.details').fadeTo('slow', 0.7); // },function(){ // $(this).find('.details').fadeOut('slow'); // }) // }) $(document).ready(function(){ $(&#39;#gallery&#39;).on(&#39;mouseenter mouseleave&#39;, &#39;p.photo&#39;, function(event){ var $details = $(this).find(&#39;.details&#39;); if(event.type == &#39;mouseenter&#39;){ $details.fadeTo(&#39;slow&#39;, 0.7); } else{ $details.fadeOut(&#39;slow&#39;); } }) }) </script>
Photo Gallery
![]()
The Cullin Mountains, Isle of skye ....
12/24/2000
Alasdair Dougall
![]()
The Cullin Mountains, Isle of skye....
12/24/2000
Alasdair Dougall
![]()
The Cullin Mountains, Isle of skye....
12/24/2000
Alasdair Dougall
![]()
The Cullin Mountains, Isle of skye .....
12/24/2000
Alasdair Dougall
![]()
The Cullin Mountains, Isle of skye ....
12/24/2000
Alasdair Dougall
![]()
The Cullin Mountains, Isle of skye ...
12/24/2000
Alasdair Dougall
![]()
The Cullin Mountains, Isle of skye....
12/24/2000
Alasdair Dougall
![]()
The Cullin Mountains, Isle of skye.....
12/24/2000
Alasdair Dougall
![]()
The Cullin Mountains, Isle of skye ......
12/24/2000
Alasdair Dougall
![]()
The Cullin Mountains, Isle of skye
12/24/2000
Alasdair Dougall
![]()
The Cullin Mountains, Isle of skye
12/24/2000
Alasdair Dougall
![]()
The Cullin Mountains, Isle of skye
12/24/2000
Alasdair Dougall
![]()
The Cullin Mountains, Isle of skye
12/24/2000
Alasdair Dougall
![]()
The Cullin Mountains, Isle of skye
12/24/2000
Alasdair Dougall
![]()
The Cullin Mountains, Isle of skye
12/24/2000
Alasdair Dougall
Detaillierte Erläuterung des Delegationsmusters von PHP-Entwurfsmustern
Teilen von nativem JS- und jQuery-Beispielcode zur Ereignisdelegierung in JavaScript
Detaillierte Erläuterung der Javascript-Ereignisdelegierung
Das obige ist der detaillierte Inhalt vonjQuery fügt Seitendaten und Ereignisdelegierung dynamisch hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











DDREASE ist ein Tool zum Wiederherstellen von Daten von Datei- oder Blockgeräten wie Festplatten, SSDs, RAM-Disks, CDs, DVDs und USB-Speichergeräten. Es kopiert Daten von einem Blockgerät auf ein anderes, wobei beschädigte Blöcke zurückbleiben und nur gute Blöcke verschoben werden. ddreasue ist ein leistungsstarkes Wiederherstellungstool, das vollständig automatisiert ist, da es während der Wiederherstellungsvorgänge keine Unterbrechungen erfordert. Darüber hinaus kann es dank der ddasue-Map-Datei jederzeit gestoppt und fortgesetzt werden. Weitere wichtige Funktionen von DDREASE sind: Es überschreibt die wiederhergestellten Daten nicht, füllt aber die Lücken im Falle einer iterativen Wiederherstellung. Es kann jedoch gekürzt werden, wenn das Tool explizit dazu aufgefordert wird. Stellen Sie Daten aus mehreren Dateien oder Blöcken in einer einzigen wieder her

0.Was bewirkt dieser Artikel? Wir schlagen DepthFM vor: ein vielseitiges und schnelles generatives monokulares Tiefenschätzungsmodell auf dem neuesten Stand der Technik. Zusätzlich zu herkömmlichen Tiefenschätzungsaufgaben demonstriert DepthFM auch hochmoderne Fähigkeiten bei nachgelagerten Aufgaben wie dem Tiefen-Inpainting. DepthFM ist effizient und kann Tiefenkarten innerhalb weniger Inferenzschritte synthetisieren. Lassen Sie uns diese Arbeit gemeinsam lesen ~ 1. Titel der Papierinformationen: DepthFM: FastMonocularDepthEstimationwithFlowMatching Autor: MingGui, JohannesS.Fischer, UlrichPrestel, PingchuanMa, Dmytr

Die von Google geförderte Leistung von JAX hat in jüngsten Benchmark-Tests die von Pytorch und TensorFlow übertroffen und belegt bei 7 Indikatoren den ersten Platz. Und der Test wurde nicht auf der TPU mit der besten JAX-Leistung durchgeführt. Obwohl unter Entwicklern Pytorch immer noch beliebter ist als Tensorflow. Aber in Zukunft werden möglicherweise mehr große Modelle auf Basis der JAX-Plattform trainiert und ausgeführt. Modelle Kürzlich hat das Keras-Team drei Backends (TensorFlow, JAX, PyTorch) mit der nativen PyTorch-Implementierung und Keras2 mit TensorFlow verglichen. Zunächst wählen sie eine Reihe von Mainstream-Inhalten aus

Stehen Sie vor einer Verzögerung oder einer langsamen mobilen Datenverbindung auf dem iPhone? Normalerweise hängt die Stärke des Mobilfunk-Internets auf Ihrem Telefon von mehreren Faktoren ab, wie z. B. der Region, dem Mobilfunknetztyp, dem Roaming-Typ usw. Es gibt einige Dinge, die Sie tun können, um eine schnellere und zuverlässigere Mobilfunk-Internetverbindung zu erhalten. Fix 1 – Neustart des iPhone erzwingen Manchmal werden durch einen erzwungenen Neustart Ihres Geräts viele Dinge zurückgesetzt, einschließlich der Mobilfunkverbindung. Schritt 1 – Drücken Sie einfach einmal die Lauter-Taste und lassen Sie sie los. Drücken Sie anschließend die Leiser-Taste und lassen Sie sie wieder los. Schritt 2 – Der nächste Teil des Prozesses besteht darin, die Taste auf der rechten Seite gedrückt zu halten. Lassen Sie das iPhone den Neustart abschließen. Aktivieren Sie Mobilfunkdaten und überprüfen Sie die Netzwerkgeschwindigkeit. Überprüfen Sie es erneut. Fix 2 – Datenmodus ändern 5G bietet zwar bessere Netzwerkgeschwindigkeiten, funktioniert jedoch besser, wenn das Signal schwächer ist

Das neueste Video von Teslas Roboter Optimus ist veröffentlicht und er kann bereits in der Fabrik arbeiten. Bei normaler Geschwindigkeit sortiert es Batterien (Teslas 4680-Batterien) so: Der Beamte hat auch veröffentlicht, wie es bei 20-facher Geschwindigkeit aussieht – auf einer kleinen „Workstation“, pflücken und pflücken und pflücken: Dieses Mal wird es freigegeben. Eines der Highlights Der Vorteil des Videos besteht darin, dass Optimus diese Arbeit in der Fabrik völlig autonom und ohne menschliches Eingreifen während des gesamten Prozesses erledigt. Und aus Sicht von Optimus kann es auch die krumme Batterie aufnehmen und platzieren, wobei der Schwerpunkt auf der automatischen Fehlerkorrektur liegt: In Bezug auf die Hand von Optimus gab der NVIDIA-Wissenschaftler Jim Fan eine hohe Bewertung ab: Die Hand von Optimus ist der fünffingrige Roboter der Welt am geschicktesten. Seine Hände sind nicht nur taktil

Ich weine zu Tode. Die Daten im Internet reichen überhaupt nicht aus. Das Trainingsmodell sieht aus wie „Die Tribute von Panem“, und KI-Forscher auf der ganzen Welt machen sich Gedanken darüber, wie sie diese datenhungrigen Esser ernähren sollen. Dieses Problem tritt insbesondere bei multimodalen Aufgaben auf. Zu einer Zeit, als sie ratlos waren, nutzte ein Start-up-Team der Abteilung der Renmin-Universität von China sein eigenes neues Modell, um als erstes in China einen „modellgenerierten Datenfeed selbst“ in die Realität umzusetzen. Darüber hinaus handelt es sich um einen zweigleisigen Ansatz auf der Verständnisseite und der Generierungsseite. Beide Seiten können hochwertige, multimodale neue Daten generieren und Datenrückmeldungen an das Modell selbst liefern. Was ist ein Modell? Awaker 1.0, ein großes multimodales Modell, das gerade im Zhongguancun-Forum erschienen ist. Wer ist das Team? Sophon-Motor. Gegründet von Gao Yizhao, einem Doktoranden an der Hillhouse School of Artificial Intelligence der Renmin University.

Neues SOTA für multimodale Dokumentverständnisfunktionen! Das Alibaba mPLUG-Team hat die neueste Open-Source-Arbeit mPLUG-DocOwl1.5 veröffentlicht, die eine Reihe von Lösungen zur Bewältigung der vier großen Herausforderungen der hochauflösenden Bildtexterkennung, des allgemeinen Verständnisses der Dokumentstruktur, der Befolgung von Anweisungen und der Einführung externen Wissens vorschlägt. Schauen wir uns ohne weitere Umschweife zunächst die Auswirkungen an. Ein-Klick-Erkennung und Konvertierung von Diagrammen mit komplexen Strukturen in das Markdown-Format: Es stehen Diagramme verschiedener Stile zur Verfügung: Auch eine detailliertere Texterkennung und -positionierung ist einfach zu handhaben: Auch ausführliche Erläuterungen zum Dokumentverständnis können gegeben werden: Sie wissen schon, „Document Understanding“. " ist derzeit ein wichtiges Szenario für die Implementierung großer Sprachmodelle. Es gibt viele Produkte auf dem Markt, die das Lesen von Dokumenten unterstützen. Einige von ihnen verwenden hauptsächlich OCR-Systeme zur Texterkennung und arbeiten mit LLM zur Textverarbeitung zusammen.

Diese Woche gab FigureAI, ein Robotikunternehmen, an dem OpenAI, Microsoft, Bezos und Nvidia beteiligt sind, bekannt, dass es fast 700 Millionen US-Dollar an Finanzmitteln erhalten hat und plant, im nächsten Jahr einen humanoiden Roboter zu entwickeln, der selbstständig gehen kann. Und Teslas Optimus Prime hat immer wieder gute Nachrichten erhalten. Niemand zweifelt daran, dass dieses Jahr das Jahr sein wird, in dem humanoide Roboter explodieren. SanctuaryAI, ein in Kanada ansässiges Robotikunternehmen, hat kürzlich einen neuen humanoiden Roboter auf den Markt gebracht: Phoenix. Beamte behaupten, dass es viele Aufgaben autonom und mit der gleichen Geschwindigkeit wie Menschen erledigen kann. Pheonix, der weltweit erste Roboter, der Aufgaben autonom in menschlicher Geschwindigkeit erledigen kann, kann jedes Objekt sanft greifen, bewegen und elegant auf der linken und rechten Seite platzieren. Es kann Objekte autonom identifizieren
