使用colorbox遇到的问题,重复加载,详细问题描述

浏览:2318 发布日期:2013/07/02 分类:求助交流 关键字: colorbox 重复 加载 多层
项目里需要使用弹出层,然后就搜索到了colorbox这个插件。

比如我现在又一个页面 a.html ,里面分了上下2个页面 b.html 和 c.html ,分别用 div id='aa' 和 div id='bb' 进行 load 操作。

然后aa和bb 是通过点击一个按钮来加载的,也就是平时是隐藏的。

然后分别在a 和 b中要使用 colorbox 则需要申明引用。如下设置a 和 b.html页面。

 <!-- 加入弹窗chart支持 -->
    <link rel="stylesheet" href="!-PUBLIC-!/colorbox/css/colorbox.css" />
    <script src="!-PUBLIC-!/colorbox/jquery.colorbox.js"></script>
        $(document).ready(function () {

            $(".ajax").colorbox();
};
<a class='ajax' href="!-ROOT-!/Public/LineChart?item=<{$vo}>&which=0" title=<{$vo}> 历史图"><{$vo}></a>设置完毕后,点击按钮加载 a.html 然后弹窗出来,看到是正常的。

当再点击按钮加载 b.html的时候会发现,colorbox 弹出了2层,也就是需要点击2次取消才能关闭。用户体验很受影响。

昨天测试了很久,发现,只要一个主页面内分多个子页面,每个子页面都要用到colorbox的时候,就会发现这个问题,也就是重复弹出多层。

我也用了colorbox的callback函数进行跟踪,想在opened的时候就ajax的方法设置一个全局变量,然后同时再在同一个opened内进行判断加载为唯一一次,但是无法实现。

    $(document).ready(function () {
            
            $(".iframe").colorbox({
                onOpen:function(){

                    var imlog = <{$_SESSION['AddColorBox_mlog']}>;

                    if (imlog == 1) {
                        alert('判断111');
                        jQuery().colorbox.close();
                    }
                    else{
                        alert('判断000');
                    };

                    $.post('!-URL-!/Ajax_Set_1',function(jdata){
                        if(jdata.status==1){
                            alert(11);
                        }
                    });
                },
                onClosed:function(){
                    $.post('!-URL-!/Ajax_Set_0',function(jdata){
                        if(jdata.status==0){
                            alert(00);
                        }
                    });
                }
            });//
        });
很有可能我这样设计页面是有问题的,希望指教,最好详细点···因为我实在太入门了~如果没有办法解决,那么只能每次点开a.html的时候,就‘隐藏’b.html,也就是顺带再 .empty(); 一次,理论上就是销毁多次加载的colorbox来解决了····

由于刚从C++这块过来,时间很紧很多细节估计没注意到,还望有人能指点如何解决。
最佳答案
评论( 相关
后面还有条评论,点击查看>>