2010-08-13 88 views
5

我有一个编辑窗体,使用Jquery工具显示为叠加层。jQuery工具:如何关闭覆盖图?

在我的对象列表视图页上,每个对象都有<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> 

我怎样才能让这个取消按钮关闭叠加?看来,我可以访问Overlay API对象的唯一方法是使用创建它的选择器 - 在这种情况下,我不知道哪一个触发了叠加层。

我真正想要做的是一样的东西:

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

但这不起作用。

有没有什么办法可以关闭叠加而不做:

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

回答

2

,您可以轻松简单地通过 增加更多的收盘覆盖内 要素分配CSS类名“接近” 他们。这些元素可以以 的样式设置,并以任何你喜欢的方式定位在 的叠加层中。

如果为亲密 配置变量提供一个值,收盘 元素不是自动生成的,你 需要定义闭合元件(一个或多个) 自己。

所以,如果你把<a href="#" class="cancel close">Cancel</a>它应该工作。

+0

感谢您的回答。不幸的是,它不工作:-( – Roger 2010-08-13 13:41:59

+0

对不起,我会再试一次,看我的编辑。 – 2010-08-13 13:58:36

+0

现在工作。谢谢 – Roger 2010-08-13 16:06:32

1

要关闭使用JavaScript的模态(无自动点击关闭按钮):

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

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

+0

非常好的解决方案 – Azd325 2012-02-23 11:56:33

1

扩展Kras提供的内容。如果你只有一个叠加开放一次(这在逻辑上,你会做),那么你也许可以用这个更通用的方法:

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

我希望这有助于!