我已将jQuery工具的Overlay effect添加到我的网站,使用“最小安装”。不幸的是,当用户想要关闭它时,他必须瞄准右上角的这个小圆圈。可用性受这种方式的影响。如果用户只需点击任何地方关闭它就会好得多。如何关闭jQuery工具叠加点击,无论在哪里?
我是否可以修改或添加一些代码,以便无论用户点击何处都会关闭覆盖图?或者,当他在叠加层之外点击时?我无法在文档中找到任何关于此的注释。
我已将jQuery工具的Overlay effect添加到我的网站,使用“最小安装”。不幸的是,当用户想要关闭它时,他必须瞄准右上角的这个小圆圈。可用性受这种方式的影响。如果用户只需点击任何地方关闭它就会好得多。如何关闭jQuery工具叠加点击,无论在哪里?
我是否可以修改或添加一些代码,以便无论用户点击何处都会关闭覆盖图?或者,当他在叠加层之外点击时?我无法在文档中找到任何关于此的注释。
或者,也许当他点击重叠之外?
检查the docs( '配置' 部分):
closeOnClick(默认值:true)
默认情况下,当单击覆盖区域外的鼠标覆盖时关闭。将此属性设置为false会抑制适用于模态对话框的此行为。
即,该功能在默认情况下已经启用。如果它不工作,您可能想向我们展示您的覆盖配置。
尝试(快速和肮脏的):
$(document).click(function(){
$('.simple_overlay:visible .close').click();
});
@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 + '"/>');
希望这有助于如果有人需要它..
+1更多信息 – 2011-03-09 16:59:20
对我来说,这段代码立即打开和关闭叠加层。似乎有一些错误(我怀疑jQuery库,因为.parents(f)行为怪异)。默认叠加在另一个页面中正常工作。 :( – 2013-04-17 15:00:34
在我的实验,我发现,即使official jQuery Tools standalone demo正确不紧密覆盖。例如,当我点击覆盖图像下方时,它会关闭,但当我点击覆盖图的右侧或左侧时,它不会关闭。
所以,在我的情况下,我用一个解决方案,以在单击关闭覆盖的任何地方文件:
<script type="text/javascript">
function closeOverlay(){
$('.overlay:visible .close').click();
}
document.addEventListener('click',closeOverlay,true);
</script>
可能是它的肮脏太多,但它为我工作。
这一个不适合我,因为我想排除叠加层内部的点击。 – 2013-10-09 22:39:53
+1猜我懒惰不看文档:p – BGerrissen 2010-10-19 11:16:01
@BGerrissen我刚刚刚刚发现使用这个软件包,所以我已经知道去哪里看看:) – 2010-10-19 11:18:05
他们在这里做了什么:http:// flowplayer.org/tools/demos/overlay/index.html - 在叠加层外单击时,默认情况下完全不会关闭。至少不是在他们自己的示例网站上;) – 2010-10-19 17:13:05