2

次のコードは (document).ready 関数に配置され、注文フォームを正しく表示するように機能します。

    <?php   if (isset($_POST['preview-order'])) {    //IF PREVIEW FORM  ?>
            $("#cam-order-preview").show('slow');
    <?php   } else {                                //ELSE ORDER FORM  ?>               
        if (lastAreaVisible != "") { 
            $("#<?php echo $_SESSION['last_area_visible'];?>").css("visibility", "visible");
            $("#<?php echo $_SESSION['last_area_visible'];?>").css("position", "relative");
            $("#<?php echo $_SESSION['last_area_visible'];?>").css("display", "block");
            $("#<?php echo $_SESSION['last_area_visible'];?>").show('slow');            
        } 
            $("#cam-order-form").show('slow');
            $("#cam-order-nav").show('slow');                   
            $("#order-comment-box").show('slow');

問題は、「last_area_visible」値が設定されている場合、条件付きで他のセクションを非表示にしたいので、そのようにelseステートメントを追加しますが、elseステートメントによりフォーム全体が壊れ、jqueryが解析を停止したかのように何も表示されません。

<?php   if (isset($_POST['preview-order'])) {   //IF PREVIEW FORM   ?>
                $("#cam-order-preview").show('slow');
        <?php   } else     {                                //ELSE ORDER FORM   ?>              
if (lastAreaVisible != "") { 
 $("#<?php echo $_SESSION['last_area_visible'];?>").css("visibility", "visible");
 $("#<?php echo $_SESSION['last_area_visible'];?>").css("position", "relative");
 $("#<?php echo $_SESSION['last_area_visible'];?>").css("display", "block");
 $("#<?php echo $_SESSION['last_area_visible'];?>").show('slow');           
} else { 
 $("#cam-order-form").show('slow');
 $("#cam-order-nav").show('slow');                  
 $("#order-comment-box").show('slow');
}

洞察はありますか?一番上のコードが機能し、すべてのセクションが表示されます。下の 3 つだけを非表示にしたいのですが、奇妙な理由で jquery が気に入りません。

4

1 に答える 1

0

最終的にそれを理解しました。この問題は、一番上のブロックのセレクターが実際にはcam-order-form内にネストされたdivであったために発生しました。追加する

 $("#cam-order-form").show('slow');
 $("#cam-order-nav").hide('slow');

divがネストされているため、ブロックが必要に応じて動作を許可した場合は、一番上に移動します。

したがって、表示または非表示にするときに注意すべきもう1つの点は、予期しない結果をもたらすことです。表示しようとしているdivのネストを確認してください。

于 2013-03-21T14:28:45.283 に答える