我正在开发一个ajax
弹出系统。功能之一是,当 ajax 收集任何新数据时,使用 Fancybox 显示它。有两种情况:
- 用户读取 带来的数据
ajax
,并关闭fancybox。 - 用户是AFK。当另一个数据进来时,它应该被附加到已经显示的fancybox内容
我的fancybox html 容器如下所示:
<div id="notifications_fancybox">
<div class="notifications_fancybox_title">
Powiadomienia
</div>
<div id="notifications_fancybox_content">
</div>
</div>
在哪里notifications_fancybox
有display: none;
css。
拳头我只想$('#otifications_fancybox_content').append('some html');
附加一些数据,但似乎在fancybox初始化之后,不知何故它不会让我附加任何东西。
所以我找到了另一种方法来做到这一点:
当新数据进来时,首先检查fancybox是否已经打开:
nl.isFancyboxOpened = function(){
if($('#fancybox-wrap').is(':visible')) return true;
return false;
};
如果已打开,请关闭它:
if(nl.isFancyboxOpened()){
$.fancybox.close();
}
附加一些数据
$('#otifications_fancybox_content').append('some html');
并打开fancybox
nl.openFancybox = function(){
if(nl.isFancyboxOpened() == false){
$.fancybox(
$('#notifications_fancybox').html(),
{
'autoDimensions' : false,
'overlayShow' : true,
'hideOnOverlayClick' : false,
'showCloseButton' : true,
'width' : 450,
'height' : 400,
'transitionIn' : 'none',
'transitionOut' : 'none'
}
);
}
else{
$.fancybox.resize();
}
};
现在,主要问题:当第一次显示fancybox时,一切都很好——有覆盖层、按钮等等。
当显示更多 ajax 数据并且我尝试执行上述过程(close-append-reopen)时,一切似乎都很好,除了......没有覆盖!所以用户可以点击页面上的所有内容,我不希望他这样做。