2013-03-01 17 views
11

Próbuję zniszczyć Fancybox. Nie znalazłem żadnej metody, aby to zrobić w documentation. Jak go zniszczyć po zainicjowaniu?Jak niszczyć Fancybox?

To nie działa:

$("a").unbind('fancybox').unbind('click'); 

kod badania: http://jsfiddle.net/martinba/yy3cw/2/

używam aktualnej wersji 2.1.4.

+0

Co masz na myśli przez zniszczyć? Czy chcesz ukryć te wszystkie? – Manoj

+0

Potrzebuję go do zachowania normalnego: klikniesz na link ..., a przeglądarka otworzy go. Brak wewnętrznych okien Fancybox, tak jak nie ma javascript. – Martin

Odpowiedz

13

W celu Unbind fancybox trzeba rozpiąć zdarzenia pod fb-start nazw z document:

$(document).unbind('click.fb-start'); 

choć nie wiem dlaczego deweloper wykonane tak nieoczywiste.

http://jsfiddle.net/dfsq/yy3cw/16/

+0

Wygląda na to, że działa. Dzięki! – Martin

+0

Jeśli na mojej stronie znajduje się wiele instancji fancyboksu, takich jak galeria obrazów - czy istnieje sposób na odwiązanie tylko określonych obrazów, ale nie na całość? – webdevbyjoss

+0

@Passer od: Sugeruję, aby opublikować nową odpowiedź za pomocą kodu. – dfsq

2

Spróbuj zadzwonić:

.unbind('click.fb') aby rozpiąć fancybox.

jak:

$('.group').unbind('click.fb') 
+0

Niestety, to nie działa. Tutaj jest: http://jsfiddle.net/martinba/yy3cw/11/ Kliknij przycisk init, a następnie zniszcz. "FancyDevil" nadal tam jest. – Martin

+0

To zadziałało dla mnie. "Click.fb-start" nie. Chyba zależy to od wersji FB. – igasparetto

+0

To wydaje się działać dobrze z fancybox 1.34 – Hutch

0

Jak wspomniano tutaj wcześniej: $(document).unbind('click.fb-start'); Ale też chcieć dodać tę opcję na wezwanie fancybox Init: live:false

1

można rozpiąć każdym polu ozdobne uruchamiając:

$(document).unbind('click.fb-start'); 

Albo jeśli trzeba rozwiązać konkretnego wyboru, można go undelegate:

var selector = 'a.my-fancy-box'; 
selector = selector + ":not('.fancybox-item, .fancybox-nav')"; 
$(document).undelegate(selector, 'click.fb-start'); 

Lub alternatywnie:

// Bind 
$('a.my-fancy-box').fancybox({live: false}); 

// Unbind 
$('a.my-fancy-box').unbind('click.fb'); 
Powiązane problemy