0

好的,所以我有一个容器 div 来加载一些由 php 生成的内容。我不知道内容的高度是多少,它是绝对定位的,所以容器 div 在所有内容都存在之前不知道有多高。我收集了它需要在 php 变量中的高度,并想使用 jquery 将容器 div 设置为这个高度,但它还没有工作。

我已将此代码放在页面底部附近:

<script type="text/javascript">
$(document).ready(function () {
$("#DynContainer").css({height:<?php echo $containerHeight; ?>px})
});
</script>

它目前无法正常工作,但查看 php 变量正确回显到其中的代码。例如:

<script type="text/javascript">
$(document).ready(function () {
$("#DynContainer").css({height:440px})
});
</script>

编辑:

正如许多人建议的那样,我需要为 CSS 提供有效的代码。我已经改变它来生成这个代码:

<script type="text/javascript">
$(document).ready(function () {
var containerHeight = "440px";
$("#DynContainer").css({height: containerHeight})
});

但是它仍然不起作用。ID 参考是正确的。

编辑2:

查看控制台我收到此错误:

[15:46:29.460] TypeError: $ is not a function @ http://localhost/serge/?page_id=2045:242

提示 jQuery 没有加载,但它肯定是在页面顶部调用的。这是整个页面代码: http: //pastebin.com/tGadjaRA

已解决:这是一个无冲突的 jQuery 问题。谢谢大家

4

3 回答 3

4

在值周围加上引号,因为它是一个字符串:

<script type="text/javascript">
$(document).ready(function () {
$("#DynContainer").css({height:'<?php echo $containerHeight; ?>px'})
});
</script>

http://jsfiddle.net/mblase75/GF3EK/

或者,删除“px”和引号,以便将其解析为整数(“px”是默认单位):

<script type="text/javascript">
$(document).ready(function () {
$("#DynContainer").css({height:<?php echo $containerHeight; ?>})
});
</script>

http://jsfiddle.net/mblase75/GF3EK/1/

于 2012-09-04T13:14:30.213 回答
0

“px”导致无效的javascript。正如其他答案所建议的那样,您可以在其周围加上引号,也可以完全删除 px:

$(document).ready(function () {
    $("#DynContainer").css({height:<?php echo $containerHeight; ?>})
});
于 2012-09-04T13:14:46.653 回答
0

我建议在脚本开头将 PHP 变量传递给 JS:

<script type="text/javascript">
var containerHeight = <?php echo $containerHeight; ?>;
// from now, it's pure JS. both better maintainable and readable
$(document).ready(function () {
    $("#DynContainer").css({'height': containerHeight})
});
</script>
于 2012-09-04T13:17:25.237 回答