我已经使用“最小设置”将 jQuery 工具的叠加效果添加到我的网站。不幸的是,当用户想要关闭它时,他必须瞄准右上角的这个小圆圈。可用性以这种方式受到影响。如果用户可以简单地单击任意位置将其关闭,那就更好了。
我可以修改或添加一些代码,以便无论用户点击哪里都会关闭覆盖?或者也许当他在覆盖层之外点击?我在文档中找不到任何关于此的注释。
我已经使用“最小设置”将 jQuery 工具的叠加效果添加到我的网站。不幸的是,当用户想要关闭它时,他必须瞄准右上角的这个小圆圈。可用性以这种方式受到影响。如果用户可以简单地单击任意位置将其关闭,那就更好了。
我可以修改或添加一些代码,以便无论用户点击哪里都会关闭覆盖?或者也许当他在覆盖层之外点击?我在文档中找不到任何关于此的注释。
或者也许当他在覆盖层之外点击?
检查文档(“配置”部分):
closeOnClick (default: true)
默认情况下,当鼠标在覆盖区域外单击时,覆盖关闭。将此属性设置为 false 会抑制这种适用于模式对话框的行为。
即,默认情况下已启用此功能。如果它不起作用,您可能想向我们展示您的覆盖配置。
@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 + '"/>');
并插入 class="apple" 使其变为:
b = h('<img class="apple" src="' + b + '"/>');
如果有人需要,希望这会有所帮助..
尝试(快速而肮脏):
$(document).click(function(){
$('.simple_overlay:visible .close').click();
});
在我的实验中,我发现即使是官方的 jQuery Tools 独立演示也不能正确关闭覆盖。例如,当我单击覆盖图像下方时,它会关闭,但是当我单击覆盖图像之外的右侧或左侧时,它不会关闭。
因此,在我的情况下,我使用下一个解决方案来关闭单击文档上任意位置的叠加层:
<script type="text/javascript">
function closeOverlay(){
$('.overlay:visible .close').click();
}
document.addEventListener('click',closeOverlay,true);
</script>
可能它也很脏,但它对我有用。