我正在使用Jquery LightBox插件。它工作正常。单击Jquery LightBox的关闭按钮后,我需要打开一个对话框。但我无法这样做......是否有可能跟踪灯箱的关闭事件并触发另一个事件?
请帮忙
答案 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();
}