【问题标题】:How to close jQuery Tools Overlay on click, no matter where?如何在点击时关闭 jQuery Tools Overlay,无论在哪里?
【发布时间】:2010-10-19 11:08:10
【问题描述】:

我已使用“最小设置”将 jQuery 工具的 Overlay effect 添加到我的网站。不幸的是,当用户想要关闭它时,他必须瞄准右上角的这个小圆圈。可用性以这种方式受到影响。如果用户可以简单地单击任意位置将其关闭,那就更好了。

我可以修改或添加一些代码,这样无论用户点击哪里,它都会关闭覆盖?或者,也许当他点击覆盖之外?我在文档中找不到任何说明。

【问题讨论】:

    标签: javascript jquery jquery-tools


    【解决方案1】:

    或者当他在覆盖层之外点击时?
    检查the docs('配置'部分):

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

    即,默认情况下已启用此功能。如果它不起作用,您可能需要向我们展示您的叠加配置。

    【讨论】:

    • @BGerrissen 我最近碰巧使用了这个包,所以我已经知道去哪里找了:)
    • 完全按照他们在此处所做的操作:flowplayer.org/tools/demos/overlay/index.html - 默认情况下,在覆盖层外部单击时根本不会关闭。至少不在他们自己的示例网站上;)
    • @BugAlert 看来你是对的,但它适用于 this example 和其他几个。
    【解决方案2】:

    @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 + '"/>');
    

    如果有人需要,希望对您有所帮助..

    【讨论】:

    • 对我来说,这段代码会立即打开和关闭覆盖。似乎某处存在一些错误(我怀疑 jQuery 库,因为 .parents(f) 行为怪异)。默认覆盖在不同的页面中工作正常。 :(
    【解决方案3】:

    尝试(快速而肮脏):

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

    【讨论】:

      【解决方案4】:

      在我的实验中,我发现即使official jQuery Tools standalone demo 也不能正确关闭覆盖。例如,当我单击叠加图像下方时,它会关闭,但是当我单击叠加层外部的右侧或左侧时,它不会关闭。

      因此,在我的情况下,我使用下一个解决方案来关闭单击文档上任意位置的覆盖:

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

      可能它也很脏,但它对我有用。

      【讨论】:

      • 这个对我不起作用,因为我想排除叠加层内部的点击。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多