2つの(3つと呼ぶ)状況でjQueryオーバーレイを起動する必要があります。
- HTMLボタンから(
rel
属性を使用) - PHPから呼び出された場合
- (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)と同じコマンドを送信します。