2013-03-01 46 views
11

Tôi đang cố gắng phá hủy Fancybox. Tôi đã không tìm thấy bất kỳ phương pháp nào để làm điều đó trong documentation. Làm thế nào để tiêu diệt nó sau khi nó được khởi tạo?Làm thế nào để tiêu diệt Fancybox?

này không hoạt động:

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

đang kiểm tra: http://jsfiddle.net/martinba/yy3cw/2/

tôi sử dụng phiên bản hiện tại 2.1.4.

+0

Bạn có nghĩa là bằng cách phá hủy thế nào? Bạn có muốn ẩn tất cả những thứ này không? – Manoj

+0

Tôi cần nó trở lại với hành vi standart: bạn bấm vào liên kết ... và trình duyệt sẽ mở nó. Không có cửa sổ bên trong Fancybox, giống như không có javascript. – Martin

Trả lời

13

Để unbind Fancybox bạn phải unbind sự kiện dưới fb-start namespace từ document:

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

Mặc dù, tôi không biết tại sao nhà phát triển đã làm cho nó rất unobvious.

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

+0

Có vẻ hoạt động. Cảm ơn! – Martin

+0

Nếu tôi có nhiều trường hợp fancybox trên trang của mình, như thư viện hình ảnh - là có cách nào để hủy chỉ những hình ảnh cụ thể nhưng không phải toàn bộ nội dung? – webdevbyjoss

+0

@Passer bởi tôi khuyên bạn nên đăng câu trả lời mới bằng mã của bạn. – dfsq

2

Cố gắng gọi:

.unbind('click.fb') để unbind fancybox.

như:

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

Unfortunatelly, nó không hoạt động. Đây là: http://jsfiddle.net/martinba/yy3cw/11/ Nhấp vào nút init và sau đó hủy. "FancyDevil" vẫn ở đó. – Martin

+0

Điều này làm việc cho tôi. 'Click.fb-start' không thành công. Tôi đoán nó phụ thuộc vào phiên bản FB. – igasparetto

+0

Điều này có vẻ hoạt động tốt với hộp đèn ưa thích 1.34 – Hutch

0

Vì nó đã được đề cập ở đây trước đó: $(document).unbind('click.fb-start'); Nhưng bạn cũng có thể muốn thêm tùy chọn này để gọi Fancybox init: live:false

1

Bạn có thể unbind mỗi hộp ưa thích bằng cách chạy:

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

Hoặc nếu bạn cần hủy liên kết bộ chọn cụ thể, bạn có thể hủy xóa nó:

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

Hoặc cách khác:

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

// Unbind 
$('a.my-fancy-box').unbind('click.fb'); 
Các vấn đề liên quan