我正在使用 Jquery LightBox 插件。它工作正常。单击 Jquery LightBox 的关闭按钮后,我需要打开一个对话框。但是我可以这样做...是否可以跟踪灯箱的关闭事件并触发另一个事件?
请帮忙
我正在使用 Jquery LightBox 插件。它工作正常。单击 Jquery LightBox 的关闭按钮后,我需要打开一个对话框。但是我可以这样做...是否可以跟踪灯箱的关闭事件并触发另一个事件?
请帮忙
用以下代码替换 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'); } } );
从源头
$('#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");
});
根据个人经验,我可以推荐您使用Colorbox
onClosed
您在颜色框的 init 上有属性,因此很容易:
$("a.lightbox").colorbox({
onClosed: function() {
console.log('closed')
}
});
这对我有用,无需修改 lightbox.js 中的任何内容:
<div onclick="close_lightbox()">Close Button</div>
function close_lightbox()
{
lightbox.end();
}