以下代码放置在 (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 由于某些奇怪的原因不喜欢它。
最佳答案
终于弄清楚了,这个问题的发生是因为顶部 block 中的选择器实际上是嵌套在cam-order-form中的div。添加
$("#cam-order-form").show('slow');
$("#cam-order-nav").hide('slow');
由于 div 的嵌套,如果 block 允许根据需要进行行为,则到顶部。
因此,当显示或隐藏产生意外结果时要注意的另一件事是:检查您要显示的 div 的嵌套。
关于PHP JQuery 文档准备好添加 IF 语句会中断 .show( ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15538875/