我正在使用jquery打开弹出窗口。我的弹出内容由图像和文本组成。
当我点击pop1时,我得到了我的pop1内容。当我点击pop2几秒钟时,我看到我的pop1内容,然后我的pop2加载。我该如何解决这个问题?
我的弹出代码:
$(document).ready(function(){
///////LINKS - POPUP////////
$('#all').delegate('a.pop-lnk', 'click', function(){
var page = $(this).attr('id');
$('#popup').empty();
$('#gr-out').css({ opacity: 0.7, 'width':$(document).width(),'height':$(document).height()}).show();
$('#popup').css({'display': 'block'});
$('#popup').load("../phpHandler.php?page="+ page);
})
$('body').delegate('.hide-it', 'click', function(){
$('.hide-it').hide();
})
});
我处理链接的php(phpHandler):
<?php
$page = $_GET['page'];
$pages = array('pop1',
'pop2');
if (!empty($page)) {
if(in_array($page,$pages)){
$page .= '.php';
require_once('../' . $page . '');
}
else require_once('../err.php');
}
else require_once('../err.php');
?>
答案 0 :(得分:1)
这是因为您首先显示包含先前加载的pop1内容的元素
$('#gr-out').css({ opacity: 0.7, 'width':$(document).width(),'height':$(document).height()}).show();
$('#popup').css({'display': 'block'});
然后开始加载新内容
$('#popup').load("../phpHandler.php?page="+ page);
这不是缓存,而是时间问题:)
答案 1 :(得分:0)
在.load
回调中显示弹出窗口,以便在显示之前加载html。
$('#popup').load("../phpHandler.php?page="+ page, function(){
$('#popup').css({'display': 'block'});
});
答案 2 :(得分:0)
隐藏模态时,请清除其内容。
$('body').delegate('.hide-it', 'click', function(){
$('.hide-it').hide();
$('#popup').empty();
})
});