2

这是我的CSS:

#optionHotel{
    display:none;
}

这是我的 JavaScript:

function cb1(type){
    switch(type){
        case "hotel":
            alert("hotel");
            $("#optionHotel").css("display","block");
            break;
    }
}

这是我的HTML:

<div id="optionHotel"> Some Element In here</div>

在“头标”中启动脚本:

<?echo '
<script>window.onload = cb1("'.$orderType.'");</script>
'?>

<!--CSS-->
<link href="../../css/navigate.css" rel="stylesheet"/>
<link href="../../css/reservation.css" rel="stylesheet"/>

将数据从 php 传递到 js 是可以的,因为我已经检查了在 switchcase

使用 alert() 没关系,但我不知道为什么 .css display to block 不起作用

请指教,在此先感谢

4

1 回答 1

7

你的代码:

<script>window.onload = cb1("'.$orderType.'");</script>

将立即调用该cb1()函数并尝试将其结果分配为window.onload处理程序。您会看到警报,因为该函数确实运行了,但因为它立即从文档头部内部运行,文档正文尚未被解析,因此脚本无法找到您的元素。

您需要分配一个实际函数作为处理程序,该函数将在其中运行 onload 并且此时将调用cb1()

<script>window.onload = function() { cb1("'.$orderType.'"); };</script>

或者,由于您使用的是 jQuery,并且假设您不想在调用函数之前等待图像加载,请使用文档就绪处理程序:

<?echo '
<script>
  $(document).ready(function() {
     cb1("'.$orderType.'");
  });
</script>
'?>

...或将脚本移动到正文的末尾并直接调用您的函数:

<?echo '
<script>cb1("'.$orderType.'");</script>
'?>
于 2013-05-19T12:43:52.373 回答