Fancybox:点击页面的任何部分打开Fancybox

时间:2013-10-27 12:49:13

标签: javascript jquery fancybox

我正在尝试使用jQuery和Fancybox在我的页面中实现一个简单的东西,但我不能让我的代码工作。

我需要创建一个代码,当用户点击页面的任何部分时,Fancybox会打开一个模态。

If you don't know what's a modal, this is a modal.

目前,我的代码如下:

<script>
        $(document).ready(function(){
          $(document).click(function(e){
            $.fancybox.open([{
              href: '/welcome',
              title: 'Welcome to Our Website!'
            }],
            {
              width: 800,
              height: 600
            });
          });
        });
</script>

对我来说代码很好,但是当我进入这个页面并点击页面的很多部分时,没有任何反应。注意:控制台不显示任何错误消息,那么,我做错了什么?

1 个答案:

答案 0 :(得分:1)

如果您想在页面加载后(或在页面本身与页面交互之前)用户点击页面中的任何位置时打开fancybox,请尝试

jQuery(document).ready(function ($) {
    // add fancybox class to body on page load
    $("body").addClass("fancyopen");
    // bind click to body
    $(".fancyopen").on("click", function () {
        $.fancybox([{
            href: "/yourpage.html",
            title: "welcome to our website"
        }], {
            width: 300,
            height: 200,
            type: "iframe",
            afterShow: function () {
                $(".fancybox-wrap").on("click", function (event) {
                    event.stopPropagation(); // so you can click fancybox without calling it again
                });
            },
            afterClose: function () {
                $(".fancyopen").unbind("click").removeClass("fancyopen"); // now you can interact with the page
            }
        }); // fancybox
    }); // on
}); // ready

参见 JSFIDDLE