2010-10-19 83 views
1

我已将jQuery工具的Overlay effect添加到我的网站,使用“最小安装”。不幸的是,当用户想要关闭它时,他必须瞄准右上角的这个小圆圈。可用性受这种方式的影响。如果用户只需点击任何地方关闭它就会好得多。如何关闭jQuery工具叠加点击,无论在哪里?

我是否可以修改或添加一些代码,以便无论用户点击何处都会关闭覆盖图?或者,当他在叠加层之外点击时?我无法在文档中找到任何关于此的注释。

回答

4

或者,也许当他点击重叠之外?
检查the docs( '配置' 部分):

closeOnClick(默认值:true)
默认情况下,当单击覆盖区域外的鼠标覆盖时关闭。将此属性设置为false会抑制适用于模态对话框的此行为。

即,该功能在默认情况下已经启用。如果它不工作,您可能想向我们展示您的覆盖配置。

+0

+1猜我懒惰不看文档:p – BGerrissen 2010-10-19 11:16:01

+0

@BGerrissen我刚刚刚刚发现使用这个软件包,所以我已经知道去哪里看看:) – 2010-10-19 11:18:05

+0

他们在这里做了什么:http:// flowplayer.org/tools/demos/overlay/index.html - 在叠加层外单击时,默认情况下完全不会关闭。至少不是在他们自己的示例网站上;) – 2010-10-19 17:13:05

0

尝试(快速和肮脏的):

$(document).click(function(){ 
    $('.simple_overlay:visible .close').click(); 
}); 
4

@NikitaRybak closeOnClick只适用于使用曝光/遮罩。我已经修改了覆盖代码没有公开/口罩工作..

整齐精缩的JavaScript .. 在缩小的代码中找到此:

b.closeOnClick && a(document).bind("click." + n, function(l) { 

并插入到这个功能,而不是

if (!a(l.target).hasClass('overlay') && !a(l.target).hasClass('apple') && !a(l.target).parents('.overlay', f).length && !a(l.target).parents('[rel="#' + a(f).attr('id') + '"]').length && !(a(l.target).attr('rel') == '#' + a(f).attr('id'))) { c.close(l); } 

现在,如果你使用苹果的影响,在苹果效应代码中找到这样的:

b = h('<img src="' + b + '"/>'); 

并插入类=“苹果”,所以它变成了:

b = h('<img class="apple" src="' + b + '"/>'); 

希望这有助于如果有人需要它..

+0

+1更多信息 – 2011-03-09 16:59:20

+0

对我来说,这段代码立即打开和关闭叠加层。似乎有一些错误(我怀疑jQuery库,因为.parents(f)行为怪异)。默认叠加在另一个页面中正常工作。 :( – 2013-04-17 15:00:34

0

在我的实验,我发现,即使official jQuery Tools standalone demo正确不紧密覆盖。例如,当我点击覆盖图像下方时,它会关闭,但当我点击覆盖图的右侧或左侧时,它不会关闭。

所以,在我的情况下,我用一个解决方案,以在单击关闭覆盖的任何地方文件:

<script type="text/javascript"> 
    function closeOverlay(){ 
     $('.overlay:visible .close').click(); 
    } 
    document.addEventListener('click',closeOverlay,true); 
</script> 

可能是它的肮脏太多,但它为我工作。

+0

这一个不适合我,因为我想排除叠加层内部的点击。 – 2013-10-09 22:39:53