jquery fancybox - 防止在fancybox外面点击关闭

Mik*_*ike 11 javascript jquery modal-dialog fancybox

我正在为我的模态窗口使用Fancybox插件.似乎无论我使用什么选项,当用户点击fancybox模态窗口(灰色区域)外,我无法阻止fancybox模态窗口关闭.

有没有办法强制用户单击我触发关闭事件的X或按钮?这似乎应该很简单,所以我希望我只是读错了这些例子.

我已经尝试了,hideOnContentClick: false但这似乎对我不起作用.有任何想法吗?

小智 24

   jQuery(".lightbox").fancybox({
        helpers     : {
            overlay : {
                speedIn  : 0,
                speedOut : 300,
                opacity  : 0.8,
                css      : {
                    cursor : 'default'
                },
                closeClick: false
            }
        },
    });
Run Code Online (Sandbox Code Playgroud)

  • 这实际上并没有回答使用fancybox v1.2.1的原始问题.对于v1.2.6和v1.3.4之间的版本,请参阅@ cool_dev的答案.对于fancybox 2.x,请参阅http://stackoverflow.com/a/8404587/1055987 (2认同)

小智 11

<script type="text/javascript">
  $(document).ready(function() {
    $("#your_link").fancybox({
      'hideOnOverlayClick':false,
      'hideOnContentClick':false
    });
  });
</script>                              
Run Code Online (Sandbox Code Playgroud)


小智 7

我正在使用fancybox 1.3.1,如果您想通过单击按钮强制用户关闭模式框,您可以在配置中指定:

<script type="text/javascript">
  $(document).ready(function() {
    $("#your_link").fancybox({
      'hideOnOverlayClick':false,
      'hideOnContentClick':false
    });
  });
</script>
Run Code Online (Sandbox Code Playgroud)


小智 6

对于这个问题,请尝试这种方式

$("YourElement").fancybox({
 helpers: {
        overlay: { closeClick: false } //Disable click outside event
    }
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.


小智 5

如果您使用的是Fancybox 1.2.6(就像我在项目中一样),我找到了hideOnOverlayClick选项.您可以将其设置为false(例如hideOnOverlayClick:false).

我在探索修改代码的过程中找到了这个选项,基于Scott Dowding的建议.


小智 4

没有选择。您将必须更改源代码。

在 jquery.fancybox-1.2.1.js 中,您需要注释掉(或删除)_finish 方法中的第 341 行:

//$("#fancy_overlay, #fancy_close").bind("click", $.fn.fancybox.close);
Run Code Online (Sandbox Code Playgroud)