jQuery工具:如何关闭叠加层?

时间:2010-07-16 16:04:45

标签: jquery dialog popup overlay jquery-tools

$("a[rel]").getOverlay().close();
$("a[rel]").close();

两者都不起作用。

$(document).ready(function () {
        $("a[rel]").overlay({
            mask: '#3B5872',
            effect: 'apple',
            onBeforeLoad: function () {
                var wrap = this.getOverlay().find(".contentWrap");
                wrap.load(this.getTrigger().attr("href"));
            },
            onLoad: function () {
                $('.contentWrap form').submit(function (event) {
                    event.preventDefault();
                    $("a[rel]").overlay().close();
                    hijack(this, update_employees, "html");
                });
            }
        });
    });

    function hijack(form, callback, format) {
        $.ajax({
            url: form.action,
            type: form.method,
            dataType: format,
            data: $(form).serialize(),
            success: callback
        });
    }

    function update_employees(result) {
        $("#gridcontainer").html(result);
    }

有什么建议吗?

我使用Chrome是因为onLoad事件似乎无法在FF中正常工作。

7 个答案:

答案 0 :(得分:17)

像这样:

$("a[rel]").overlay().close();

对于他们的大部分脚本,您可以调用原始方法,例如: .overlay()然后在该对象上调用the method you want

答案 1 :(得分:10)

如果要从js:

关闭它,则需要在属性中设置api:true
var overlay = $("a[rel]").overlay({
    ...
    api:true
});

overlay.close();

答案 2 :(得分:5)

如果将叠加层分配给类,问题是会有很多叠加元素,所以必须关闭所有叠加元素:

$.each($(".caddy_grid"), function(i, v){$(v).overlay().close();})

或者,可以模拟关闭按钮上的单击:

在我的情况下触发叠加层的类是 caddy_grid_overlay ,因此可以按以下方式访问关闭按钮:

$('.caddy_grid_overlay .close').click();

答案 3 :(得分:2)

尝试

$("a[rel]").data("overlay").close();

我用它来关闭我的叠加层。

来源:http://forum.jquery.com/topic/having-trouble-timing-jquery-tools-overlay-to-close-after-a-few-seconds

答案 4 :(得分:2)

它适合您,请参考此处的代码,

var api = $("a[rel]").data("overlay");

api.close();//close this overlay

参考:

http://jquerytools.org/documentation/overlay/index.html#api

http://jquerytools.org/documentation/scripting.html

答案 5 :(得分:1)

 $(document).ready(function() { 
    var overlayObject = $("a[rel]").overlay({ 
        top: 50,
        expose: {
                    color: '#232323',
                    closeOnClick: true
                },

                onClose:function() {   
                    $('#reg-login').hide();
                    $('#reg-register').hide();
                },
        effect: 'apple'
 });    

答案 6 :(得分:0)

你可以创建一个函数并从任何你想要的函数调用它。

这个函数将根据类名和链接工作。

  

function closeOverlay(){           警报( 'AA');            var overlay = $(\“a.ShowOverlay \”)。overlay({               API:真           });

    overlay.close();
}