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');
}

有什么见解吗?顶部代码有效并显示所有部分,我只想隐藏底部三个但 jquery 出于某种奇怪的原因不喜欢它。

4

1 回答 1

0

终于弄明白了,出现这个问题是因为top block中的选择器其实是cam-order-form里面嵌套的div。添加

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

由于 div 的嵌套,如果块根据需要允许行为,则到顶部。

所以在显示或隐藏时要注意的另一件事会产生意想不到的结果:检查您要显示的 div 的嵌套。

于 2013-03-21T14:28:45.283 回答