代码之家  ›  专栏  ›  技术社区  ›  Roger

jQuery工具:如何关闭覆盖?

  •  5
  • Roger  · 技术社区  · 16 年前

    在“我的对象列表”视图页上,每个对象都有 <a href="#" class="edit_button">Edit</a>

            $(".edit_button[rel]").overlay({ top: '5px',
                fixed: false,
    
                mask: {
                    color: '#ebecff',
                    loadSpeed: 200,
                    opacity: 0.9
                }
            });
    

    “编辑表单覆盖”包含一个“取消”按钮:

    <a href="#" class="cancel">Cancel</a>
    

    $('.edit').each() 因为我不知道是哪个触发了叠加。

    我真正想做的是:

    $('.cancel').click(function(e){
        var target = e.originalTarget || e.srcElement;
        $(target).parent().parent().getOverlay().close();
    });
    

    但这行不通。

    有什么方法可以关闭覆盖而不执行以下操作:

    $(".edit_button[rel]").each(function() {
        $(this).overlay().close();
    });
    

    ?

    3 回复  |  直到 16 年前
        1
  •  2
  •   Matt Williamson    16 年前

    你可以很容易地添加更多的结束语 覆盖层内的元素 指定CSS类名“close” 在里面按你喜欢的方式摆放 覆盖层。

    如果你提供了一个结束值 配置变量,关闭 元素不是自动生成的 需要定义结束元素 你自己。

    所以如果你把 <a href="#" class="cancel close">Cancel</a> 应该有用。

        2
  •  1
  •   Tim Cooper    14 年前

    $('#ID OF YOUR MODAL a.close').trigger("click");
    

    或者如果你是在一个iframe(像我一样),把父母。在 $ .

        3
  •  1
  •   Nabster    14 年前

    扩展Kras提供的内容。如果一次只打开一个覆盖(从逻辑上讲,您会这样做),那么您可以使用这种更通用的方法:

      $('a.close').trigger('click');
    

    我希望这有帮助!