2013-06-21 37 views
6

tôi đã thực hiện Magnific Popup trong các giải pháp của tôi và tôi đang sử dụng Bootbox để có được xác nhận từ người sử dụng rằng ông muốn đóng cửa sổ mà không cần thay đổi tiết kiệm vvMagnific hành động Popup trước khi đóng cửa

tôi nối chức năng tùy chỉnh của tôi đến đóng lại gọi lại nhưng không hoạt động như mong đợi.

$('#divThumbnails').magnificPopup({ 
      delegate: 'a', 
      type: 'inline', 
      midClick: true, 
      callbacks: { 
       close: function() { 
        var confirm = bootbox.confirm('Are you sure?', function(result) { 
        }); 

        if (confirm) 
         return true; 
        else 
         return false; 

       } 
      } 
     }); 

Đây chỉ là mẫu nhanh, không phải mã sản xuất. Câu lệnh if-else là có bởi vì nếu không hộp thoại Bootbox không hiển thị (thông thường không cần kiểm tra giá trị trả về khi nó được truyền như đối số trong ví dụ này được gọi là kết quả).

Vấn đề là sau khi tôi nhấp vào nút đóng, hình ảnh của tôi (đó là nội dung của cửa sổ bật lên) sẽ biến mất. Tôi muốn có một cơ hội để hủy bỏ các hoạt động gần gũi và để đạt được rằng tôi cần một sự kiện sẽ cháy TRƯỚC KHI đóng cửa sổ bật lên.

Điều này có thể đạt được với Popup Magnific không?

Trả lời

20
// this part overrides "close" method in MagnificPopup object 
    $.magnificPopup.instance.close = function() { 

     if (!confirm("Are you sure?")) { 
      return; 
     } 

     // "proto" variable holds MagnificPopup class prototype 
     // The above change that we did to instance is not applied to the prototype, 
     // which allows us to call parent method: 
     $.magnificPopup.proto.close.call(this); 
    }; 

http://codepen.io/dimsemenov/pen/edCgo

+0

Cảm ơn bạn đã trả lời của bạn, tôi nghỉ ngơi trường hợp của tôi :) – Tobiasz

+0

Hi, tôi đã đăng một câu hỏi liên quan đến Popup magnific của bạn, tôi hy vọng bạn có thể giúp http://stackoverflow.com/questions/26272970/image- gallery-with-multiple-title-on-right-side – Learning

+0

Điều này cũng tốt cho việc đặt các hành động sau dòng close.call, trong trường hợp của tôi làm mới trang chứa – Kiwizoom

0

Mã này ghi đè duy nhất hiện nay mở cửa sổ bật lên! Nếu bạn mở cùng một cửa sổ bật lên sau khi đóng, cuộc gọi lại này sẽ biến mất!

$.magnificPopup.instance.st.callbacks.close=function(){ 

    // your code here 

    // this actually close popup 
    $.magnificPopup.proto.close.call(this); 

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