使用prepOverlay时,如何防止打开多个overlay?

When using prepOverlay, how can multiple overlays be prevented from opening?

我使用的是 Plone 4.3,我有一个浏览器视图,其中有打开特定形式覆盖的链接 在我的 html 中,我有

<table>
    <thead>
        <tr>
            <th class='.prep_form'>Sun</th>
            <th class='.prep_form'>Mon</th>
            ...
        </tr>
    </thead>
    <tbody>
        ...
    </tbody>
</table>

在我的 jquery 文件中

jquery(function($){
    ...
    $('.prep_form').prepOverlay({
        subtype: 'ajax',
        filter: '#content-core > form',
        noform: 'redirect',
        redirect: function(){
            redirect_location = ""; // put together a string
            return redirect_location;
        },
    });
    ...
});

不幸的是,我可以在打开表单叠加层之前多次单击链接,从而导致不止一次打开。

如何防止打开多个叠加层?

在 jquery 工具的 Docs 中有一个叠加选项:oneInstance:true 但它应该是默认值。您可以通过 this.getOverlay().close()

关闭所有打开的叠加层
$('.prep_form').prepOverlay({
    subtype: 'ajax',
    filter: '#content-core > form',
    noform: 'redirect',
    redirect: function(){
        redirect_location = ""; // put together a string
        return redirect_location;
    },
    config: {
        oneInstance:true,
        onBeforeLoad : function (e) {
            console.log('onBeforeLoad', this.getOverlay());                
            this.getOverlay().close();
            return true;
        }
    }        
});