Ich habe ein merkwürdiges Problem, ich habe Code, der Inhalt über Ajax zieht und dann Fancybox (2) an bestimmte Elemente bindet. Das Problem ist, dass wenn ich diese Seite "aktualisiere", ich die gleiche Funktion anrufe, die Fancybox erneut zieht und bindet.
Mein normaler Ansatz, der sich bis zu Fancybox 2 entwickelt hat, besteht darin, die Elemente zu lösen und erneut zu binden. Dies scheint jedoch nicht mit FB2 zu funktionieren.
Ich habe Folgendes versucht:
%Vor%Ich habe Folgendes in der Quelldatei bemerkt, was nützlich sein könnte (Startzeile 652):
%Vor%Wenn hier jemand helfen könnte, wäre das sehr zu begrüßen.
Vielen Dank im Voraus. Nick
Wenn Sie das Attribut live:false
einfügen, können Sie die Handler von Ihren Elementen entfernen, indem Sie .off()
Nachdem ich den Quellcode durchforstet habe, habe ich auch festgestellt, dass das spezifische Ereignis click.fb-start
ist, wenn Sie es gezielt ansprechen wollen.
Zum Beispiel:
%Vor%
FYI In der Dokumentation heißt es über live
:
live: Wenn diese Option auf "true" gesetzt ist, verwendet fancyBox "live", um ein Klickereignis zuzuweisen. Einstellen "false", wenn Sie nur auf die aktuelle Sammlung anwenden müssen, z mit etwas wie - $ ("#page") .children (). filter ('a'). eq (0) .fancybox ();
Hier ist ein jsFiddle demonstriert
Ich weiß, dass dies ein alter Thread ist, aber ich wollte nur bestätigen, dass OAC Designs absolut richtig ist:
Das Binden der .fancybox
-Links funktioniert nur, wenn der Parameter live
auf false
gesetzt ist.
Sie können Fancybox jedoch auch auf Dom-Ebene unabhängig vom live
-Parameter zerstören, indem Sie Folgendes tun:
$(document).unbind("click.fb-start");
Oder
$(document).off("click.fb-start");
Sehen Sie sich JSFiddle als Referenz an.
Danke für die Antwort, ich habe das obige nicht getestet. Ich habe einen anderen Ansatz gewählt, um das Problem zu lösen.
Was ich getan habe, war, anstatt die Standard-Fancybox-Funktionalität zu verwenden, habe ich Funktionen für wo ich Fancybox und manuell als Fancybox in jedem Fall, die daher das Ereignis nicht binden wollte.
Dies ist nicht der beste Ansatz und das oben genannte ist vielleicht besser, aber ich werde das im neuen Jahr testen:)
Nochmals vielen Dank.
Tags und Links fancybox-2 fancybox unbind destroy