2011-01-04 27 views
7

Hi tôi đã tự hỏi nếu nó có thể truyền lại một biến từ fancybox con để cha mẹ một khi con được đóng lại?fancybox - chuyển biến trở lại cho cha mẹ khi cửa sổ fancybox được đóng

Mọi thông tin đều được đánh giá cao.

Kính trọng,

Phil

EDIT **

function cleanUp(){ 
    var bla = $("#fancybox-frame").contents().find('input[name=pd_id]'); 
    alert(bla.val()); 
} 
$("#tree .product a[class!=copy]").fancybox({ 
    'width'    : 770, 
    'height'   : '95%', 
    'autoScale'   : false, 
    'transitionIn'  : 'none', 
    'transitionOut'  : 'none', 
    'type'    : 'iframe', 
    'onCleanup'   : cleanUp 
}); 
+2

Khi tín dụng đến hạn tôi luôn làm. Nếu không có câu trả lời cho câu hỏi của tôi thì tôi sẽ không nhấp vào bất kỳ câu hỏi ngẫu nhiên nào đơn giản để làm hài lòng tỷ lệ phần trăm. Có lẽ đây không phải là một sự phê phán đối với sự thiếu hiểu biết của tôi về việc có thể nhấp vào 'đánh dấu', nhưng một sự phê phán đối với số lượng câu trả lời nghèo nàn. Tôi luôn cung cấp tín dụng khi tín dụng đến hạn. –

Trả lời

2

Bạn có thể nhìn thấy trong fancybox api: onClosed... Will be called once FancyBox is closed

$('.overlay').fancybox({ 
    onClosed: function() { 
     var bla = $('#targetFrame')[0].contentWindow.targetFunction(); 
    } 
}); 

Không có cửa sổ con/iframe, hộp chỉ đơn giản là một div vị trí tuyệt đối. Nó nằm trong cùng một DOM với trang.

+0

Tôi hiểu những gì bạn đã đặt nhưng đó chỉ đơn giản là cho phép tôi làm điều gì đó hoặc gọi một chức năng onclose/cleanup/open ... nó không thực sự nhận được một varibal từ cửa sổ con. Và sử dụng nó trong cha mẹ. Im tìm cách vượt qua một biến trở lại từ đứa trẻ. –

+0

Không chắc chắn tương đương jQuery là gì nhưng bạn có thể sử dụng .contentWindow để truy cập iframe. Xem chỉnh sửa của tôi ở trên. – Keyo

+1

Xin cảm ơn sau khi chỉnh sửa đầu tiên không hoạt động, tôi bỏ qua chức năng gọi hoàn toàn và accesed DOM cho cheers var của tôi (giải pháp của tôi là trong câu hỏi orig của tôi). –

5

Trong phụ huynh, tôi xác định

var $_returnvalue = false; 

Và onClosed trông như thế này:

onClosed: function() { 
    if ($_returnvalue != false) 
    { 
     // Do something in the parent 
    } 

Và trong trang Fancybox, khi một cái gì đó đã sẵn sàng để được trả lại, tôi đặt giá trị đó để $ _ returnvalue và sau đó đóng hộp. Điều này hoạt động tốt cho việc chọn một cái gì đó từ danh sách và chuyển giá trị đó trở lại trang gọi.

+0

hoạt động tốt. Trong trường hợp ai đó đang sử dụng Fancybox 2, nó đã thay đổi hàm từ 'onClosed' thành' afterClose'. – Raptor

Các vấn đề liên quan