1

2つの(3つと呼ぶ)状況でjQueryオーバーレイを起動する必要があります。

  1. HTMLボタンから(rel属性を使用)
  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>

これの問題は、PHPを呼び出した後、varelemLaunch::init()がボタンの使用を妨げることです。したがって、jQueryオーバーレイの手動起動と自動起動の両方を使用できる別のアプローチが必要です。

次に、手順(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 に答える