FancyBox jquery问题
如果你按X关闭它我想得到警告(“你忘了什么......”)。
我该怎么做?
$("a#uploadImage").fancybox({
'titleShow' : false,
'width': 560,
'height': 620,
'autoDimensions': false,
'overlayOpacity': 0.6
});
答案 0 :(得分:5)
默认函数是$.fancybox.close
所以我可能会倾向于做......
$.fancybox.originalClose = $.fancybox.close;
$.fancybox.close = function() {
// Do whatever you want. Then do the default behavior:
$.fancybox.originalClose();
};
这是一种破解,但它的优点是不需要对库代码或原始标记进行任何修改,不需要您直接操作库定义的事件处理程序,并自动调用您的代码而不管盒子如何关闭。
要仅更改一个特定框的行为,最好将modal
属性设置为true
(这将禁用所有内置方法关闭框),然后您可以添加自己的“保存”或“关闭”按钮,无论您想要什么。该框永远不会自动关闭,但您可以在准备好使用$.fancybox.close()
功能时将其关闭。
答案 1 :(得分:5)
有一个回调'onCleanup',所以:
$("a#uploadImage").fancybox({
'titleShow' : false,
'width': 560,
'height': 620,
'autoDimensions': false,
'overlayOpacity': 0.6m,
'onCleanup' : function() {
return window.confirm('Close?');
}
});
答案 2 :(得分:2)
我看到它的唯一方法,取出默认的关闭按钮,然后放一个。
<a href="#" id="close_fancybox"><img src="x.png" /></a>
<script>
$('#close_fancybox').click(function(){
var confirmation = confirm("You forgot something...?");
if(confirmation) {
return false;
} else {
$.fancybox.close();
return false;
}
});
</script>
答案 3 :(得分:0)
打开jquery.fancybox-1.3.2.js
并转到第910行,您可以看到花式框的关闭功能。在那个地方
$.fancybox.close = function() {
alert("hai");
if (busy || wrap.is(':hidden')) {
return;
}