FancyBox窃取内容并没有把它放回去?

时间:2011-12-08 10:22:35

标签: javascript jquery fancybox

我在链接上触发了fancybox,该链接从隐藏的div加载内容。

如果我关闭了fancybox并再次点击该链接,它会第二次加载空白

这是我的代码:

$.fancybox({
    content: $target
});

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我对其他人的灯箱,与你的灯箱类似的问题,以及其他没有显示内容等问题感到烦恼。

这个快速的代码创建与fancybox插件(本质上)相同,这是我一直使用的,它的跨浏览器兼容,易于调试和更改,当您的内容不适合或出来搞砸或任何东西。

<script type="text/javascript">
    jQuery(document).ready(function($){
        $('a.clickme').click(function(){

            // this creates an overlay
            var theOverlay = $('<table class="overlayTable"><tr><td style="vertical-align:middle;text-align:center;padding:0"></td></tr></table>')
                .click(function(){ $(document).unbind('keyup'); $(this).remove(); });

        // this creates the white "inner" box
            $('<div></div>')
                .attr('id','insideContent')
                .css({
                    'display':'inline-block',
                    'background':'#fff',
                    'padding':'20px'
                })
                .append('<p>Some content here... you can load anything you want - or copy it from another div if you want...</p>')
                .appendTo($('body'))
                .wrap(theOverlay)
                .click(function(e){ e.stopPropagation(); });

            $(document).bind('keyup', function(e){
            // this binds the esc key to close the overlay
                if(e.keyCode==27) { $(document).unbind('keyup'); $('table.overlayTable').remove(); }
            });
        });
    });
</script>

<style>
.overlayTable {
    background: url("url/to/transparent/png/for/overlay/background.png") repeat scroll 0 0 transparent;

    border-collapse: collapse;
    border-spacing: 0;

    height: 100%; width: 100%; z-index: 999;
    left: 0; position: fixed; top: 0;

}
</style>

随意将其变成插件或类似插件。当您只是填充内容div时,您可以在其中放置任何HTML或任何内容。

您还可以添加自己的触摸,例如关闭按钮(只需调用$('table.overlayTable').remove();)。