Fancybox自动关闭,但仍然是用户控制

时间:2010-06-16 13:38:17

标签: javascript jquery fancybox

我搜索了论坛但我找不到解决方案。 我正在引用这个线程来执行自动关闭功能: http://groups.google.com/group/fancybox/browse_thread/thread/d09438b7 ... 我确实遵循了JFK的解决方案,它的工作正常:

'onComplete': function() { 
   $("#fancybox-wrap, #fancybox-overlay").delay(3000).fadeOut(); 
   } 

如果您不希望用户关闭该框,请添加modal = true

场景是我希望用户可以选择关闭 模式,当他们点击[关闭]按钮或点击任何地方 覆盖。我在Rails上使用最新版本的FB和jQuery。

这是我的剧本:

<script type="text/javascript"> 
  jQuery(document).ready(function() { 
    jQuery("#link_post").fancybox({ 
      'autoDimensions':false, 
      'width':380, 
      'height':50, 
      'title':'This message box will automatically close in 10 
seconds.', 
      'titlePosition':'outside', 
      'onComplete': function() { 
        jQuery("#fancybox-wrap, #fancybox- 
overlay").delay(10000).fadeOut(); 
      } 
    }); 
  }); 
</script> 

然而,当我点击关闭按钮时,标题并关闭 按钮会消失,但FB的内容和叠加仍然是 那里!它只会在10秒后消失。所以,我的问题是 如果用户点击关闭,如何覆盖'onComplete'功能 按钮自动关闭之前?

2 个答案:

答案 0 :(得分:2)

好的,我找到了解决方案。仅供参考,我正在使用fancybox v1.3.1和jQuery v1.4.2

<script type="text/javascript"> 
  jQuery(document).ready(function() { 
    jQuery("#link_post").fancybox({ 
      'autoDimensions':false, 
      'width':380, 
      'height':50, 
      'title':'This message box will automatically close in 10 
seconds.', 
      'titlePosition':'outside', 
      'onComplete': function() { 
        jQuery("#fancybox-wrap, #fancybox- 
overlay").delay(10000).fadeOut(); 
      } 
    }); 

    jQuery("#fancybox-close").click(function() {
      jQuery('#fancybox-overlay').stop();
      jQuery('#fancybox-wrap').stop();
    });

  }); 
</script> 

答案 1 :(得分:2)

    $(document).ready(function() {
    $('.fancybox').fancybox({
    'afterLoad': function() { 
       $(".fancybox-overlay").delay(3000).fadeOut(); 
    }
    });
});

这是工作!对于fancybox v2.x。