jQuery colorbox geladen 2 iframes
Habe ich einen link, der scheint zu starten, Doppel-colorbox-element in der iframe - (oder eher 2 iframes in die box).
Ahnung warum?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich einen link, der scheint zu starten, Doppel-colorbox-element in der iframe - (oder eher 2 iframes in die box).
Ahnung warum?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie beheben Sie das .load()?
Ich habe das gleiche problem und ich habe hier die Lösung gefunden
http://groups.google.com/group/colorbox/browse_thread/thread/2f7ef7464c88f4a1/8344b1d15ca5a92b?lnk=raot
Lösung ist, um dieses format:
onclick="$.fn.colorbox({href:'/someurl.html', open:true}); return false;"
Nur gekämpft, dieses Problem für eine Weile, fand schließlich eine Lösung, die für mich gearbeitet.
In meinem Fall hatte ich einen link, der wie folgt aussah:
javascript und behandeln die klicken Sie wie folgt:
Symptome wurden mit dem ersten Klick geklappt hat, aber die nachfolgenden Klicks dazu geführt, dass mehr als ein iFrame in der colorbox, mit duplicate content.
Ich habe versucht, die folgenden Lösungen:
Schließlich, ich Debuggen die Zeile, wo colorbox rief createElement auf dem iFrame und untersucht den call-stack - das hat mir gezeigt, dass es colorbox ist eigenen klicken Sie auf handler, war das abfangen meiner Klicks - ebenso meine Stellvertretung-handler. Es scheint, dass, wenn der Anruf gemacht wird, colorbox, gegen ein Anker-tag ein, wird ein click-handler Hinzugefügt wird. Dies bedeutet, dass auf nachfolgenden Klicks, colorbox Griffe der link klicken Sie sich zum öffnen der iFrame nächste Zeit, und Sie brauchen nicht den Delegaten aufrufen.
Wenn es einen neuen Anker-tag ein, z.B. eine, die Sie gerade erstellt haben, dann colorbox eigenen handler ist nicht angebracht, dass der link noch und die Delegierten event-handler erforderlich ist.
Meine Lösung ist wie folgt:
Hinzufügen einer Klasse zum Anker, der angibt, dieser code wurde bereits ausgeführt -, und überprüfen Sie, dass die Klasse in der Zukunft. Dies könnte ein data-Attribut, Eigenschaft auf dem element selbst, ein weiteres Attribut, etc.. ich bevorzuge nur Klassen, die in dieser Instanz.
Das problem im wesentlichen darauf an, zwei click-Handler auf den Anker-tag, aber es war schwierig, genau festzustellen, wo diese herkam, denn es war nicht offensichtlich, dass colorbox war das hinzufügen von eigenen handler. Dies ist wahrscheinlich der zugrunde liegende Verhalten für alle anchor-Tags, aber ich finde es sollte nicht Hinzugefügt werden, wenn offen:true festgelegt ist.
jquery-2.1.3.min.js
undcolorbox 1.5.14
.Für mich, die Colorbox geladen, zwei iframes in einer box auf den ersten Klick, nicht mit anderen Instanzen auf der Seite. Ich fand einfach die Aktualisierung auf die neuesten Versionen von jQuery und Colorbox das Problem gelöst.
Ich hatte ein ähnliches Problem, aber es war be-die 2 iframes auf einer Seite, wo ich war, Schiebe ein panel vor-und zurück - auf die Letzte "Seite" des Panels, ich würde öffnen Sie ein iframe in Colorbox. Wenn der Benutzer navigiert zur vorherigen Seite zurück und dann wieder auf das Letzte panel, das iframe angezeigt wird, zweimal in der Colorbox. Beachten Sie, dass der Benutzer nie wirklich verlässt die HTML-Seite haben Sie die in den Speicher geladen, es wurde nur mit Javascript/CSS - /ausblenden der verschiedenen Teile des panel der Benutzer Fortgeschritten ist.
Meine Frage, die ich eingrenzen, um ein Problem mit einigen AJAX war ich durch jQuery mit der .load () - Funktion - es wurde zweimal feuern, und die callback-Funktion war, wo die Colorbox geöffnet wurde. Durch die Festsetzung der .load() verhindern, dass es brennen zweimal, es beseitigt mein Problem mit dem doppelten iframes anzeigen in Colorbox.
Nun...warum die Colorbox, die zeigen würde, die das iframe-zweimal, immer noch ein wenig verschwommen, aber ich vermute, ohne dabei eine Menge von der Suche in der Colorbox code, ist, dass die iframe-Objekt wird an die colorbox zweimal, einmal für jedes Colorbox nennen, anstatt überprüft, um zu sehen, ob das iframe existiert bereits auf dem zweiten Anruf, oder einfach nur zu ersetzen. Ich haven ' T hatte eine chance, zurück zu gehen und Tauchen Sie ein in die Colorbox code, um zu sehen, ob das beabsichtigt ist oder ob es ein Fehler ist.
Ich hoffe, das hilft, Sie zu entschlüsseln, warum dein code nicht funktioniert, aber fühlen Sie sich frei zu posten, einige der code, wo Sie die Mühe. Ich sah nicht die colorbox-link gleich auf Ihren link, so konnte nicht sehen, ob das ein Problem ist oder nicht.
ich hatte das gleiche problem; stellte sich heraus, dass in Bezug auf meine Nutzung .live(), übernommen aus einem anderen Teil von meiner Website, wo die cb-link war Teil der ajax-generierten content, da dies aber derzeit nicht. im vorliegenden Fall der cb richtig geladen beim ersten mal, aber beladen mit dem iframed Inhalt zweimal auf der zweiten und nachfolgenden öffnet.
habe ich versucht, eine Reihe von Dingen, darunter explizit das zurücksetzen der Eigenschaft href des link vor dem öffnen colorbox, nicht mit Glück. allerdings umschließt die cb-öffnen link in einem div und ersetzen der html-Code für das div in der onClosed Rückruf hat den trick. wenn Sie nicht mit .live() cb funktioniert gut, ohne die onClosed Rückruf.