是否可以在单击jquery灯箱的关闭按钮时触发事件

时间:2012-12-04 08:04:36

标签: javascript jquery jquery-plugins lightbox

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

请帮忙

4 个答案:

答案 0 :(得分: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'); }  } );

答案 1 :(得分:1)

来自消息来源

$('#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");
});

答案 2 :(得分:0)

根据个人经验,我建议您使用Colorbox

在colorbox的init上有onClosed属性,所以很容易:

$("a.lightbox").colorbox({
    onClosed: function() {
        console.log('closed')
    }
});

答案 3 :(得分:0)

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

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

function close_lightbox()
{
    lightbox.end();
}