1

我需要在两种(称为三种)情况下启动 jQuery Overlay:

  1. 从 HTML 按钮(使用relattr.)
  2. 从 PHP 调用时
  3. (2a) (保持打开状态)在 $_POST 提交之后。

对于(1)和(2)我试过这个:

//my js func
function triggerOverlay(elem){

    if(!elem){
        elem = "button[rel]";
        load = false;
    }else{
        load = true;
    }

    $(elem).overlay({
        top         : 'center',
        closeOnClick: false   ,
        load        : load   ,
        speed       : 0,
    });
};

//call from html file
<script type="text/javascript">
    $(document).ready(function() {
    <?php
//I'm calling Launch::init(); from where I need to launch it, and it sets self::$open_overlay = TRUE;
    if(Launch::$open_overlay){
        echo 'var elem = "#orderOverlay";'."\r\n";
    }
    ?>
        if(!elem){
           var elem = false;
        }
        triggerOverlay(elem);
    });
</script>

这个问题是 var elem在我调用 PHP 后会阻止使用按钮Launch::init()。所以,我需要另一种方法,它可以让我同时使用手动和自动启动 jQuery Overlay。

然后,我将处理步骤 (3)-> 在提交表单后重新加载页面时,我将发送与 (2) 相同的命令。

4

1 回答 1

0

假设您使用jQuery tools插件进行叠加,则有一些示例和文档可用于以编程方式管理叠加。查看Scripting API文档页面和演示Opening overlays programmatically

您可以使用以下方法在表单提交处理程序或元素单击处理程序中打开覆盖:

   $(selector).overlay().load();

参考:http: //jquerytools.org/documentation/overlay/index.html

如果您没有使用jQuery tools,请查看您正在使用的插件的 API

于 2012-11-24T13:21:34.877 回答