以下代码放在(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');
问题是,如果&#39; last_area_visible&#39;如果设置了值,我想有条件地隐藏其他部分,所以我添加了一个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并不喜欢它,因为一些奇怪的原因。
答案 0 :(得分:0)
最后想出来了,这个问题发生了,因为顶部块中的选择器实际上是凸轮顺序形式内的嵌套div。添加
$("#cam-order-form").show('slow');
$("#cam-order-nav").hide('slow');
到顶部if块由于div的嵌套而允许所需的行为。
另外在显示或隐藏时要小心的事情会产生意想不到的结果:检查你想要显示的div的嵌套。