1

我正在使用 Jquery LightBox 插件。它工作正常。单击 Jquery LightBox 的关闭按钮后,我需要打开一个对话框。但是我可以这样做...是否可以跟踪灯箱的关闭事件并触发另一个事件?

请帮忙

4

4 回答 4

2

用以下代码替换 jquery-lightbox-0.5.js 中的 _finish 函数:

function _finish() {
    $('#jquery-lightbox').remove();
    $('#jquery-overlay').fadeOut(function() { $('#jquery-overlay').remove(); });
    // Show some elements to avoid conflict with overlay in IE. These elements appear above the overlay.
    $('embed, object, select').css({ 'visibility' : 'visible' });

    var callback = settings.onClose;
    if($.isFunction(callback)) {
         callback.call();
    }
}

在activeImage之后的jquery-lightbox-0.5.js文件顶部的设置中添加onClose;

// Don´t alter these variables in any way
imageArray: [],
activeImage: 0,         
onClose: null

用法 :

$('#gallery a').lightBox({ onClose : function() { alert('Hi'); }  } );
于 2012-12-04T08:41:32.503 回答
0

从源头

$('#lightbox-loading-link,#lightbox-secNav-btnClose').click(function() {
    _finish();
    return false;
});

所以只需添加一个事件处理程序#lightbox-secNav-btnClose,它应该可以工作

$("body").on("click", "#lightbox-secNav-btnClose", function() {
    console.log("lightbox closed");
});
于 2012-12-04T08:25:37.237 回答
0

根据个人经验,我可以推荐您使用Colorbox

onClosed您在颜色框的 init 上有属性,因此很容易:

$("a.lightbox").colorbox({
    onClosed: function() {
        console.log('closed')
    }
});
于 2012-12-04T08:44:03.717 回答
0

这对我有用,无需修改 lightbox.js 中的任何内容:

<div onclick="close_lightbox()">Close Button</div>

function close_lightbox()
{
    lightbox.end();
}
于 2015-12-14T10:37:04.900 回答