2013-03-11 45 views
0

我有和AndyHin一样的问题(CSS HTML - DIV height fill remaining space),但是当侯赛因说的时候看不到插入javascript的位置。我必须承认,我在js中写作很新。在哪里可以插入此javascript?

我已经试过将它包含在下面的头标签之间,我也尝试将它插入到jquery中没有用。

<head> 

<script> 

Hussein's answer 

</script> 

</head> 
+0

侯赛因的回答应该代表什么? – 2013-03-11 13:57:28

+0

啊哈,现在我明白了。那家伙使用jQuery,你也必须插入jQuery。 – 2013-03-11 13:58:35

+1

添加此:之前。也可以像斯蒂芬和安东尼告诉你一样准备好。 – 2013-03-11 14:02:18

回答

2

它依赖于页面上的元素,所以你需要在脚本执行被延迟,直到DOM完成正在建设中(所以以后所需元素实际上可以被选择)。你有两个选择:

  1. 放置在HTML文档的正文末尾的<script>标签:

    <script> 
        // code here 
    </script> 
    </body> 
    
  2. 放置<head>标签内的<script>标签(或任何地方内<body>因为它实际上并不重要),并使用DOM ready事件处理程序:

    <script> 
    $(document).ready(function() { 
        // code here 
    }); 
    </script> 
    
1

的结束标记(</body>(最佳解决方案),或wrapp前右脚本的所有代码

$(function() { Hussein's answer }); 

如果你没有在最后添加脚本或者使用$(document).ready(),代码在dom准备好之前就被执行了,因此你的javascript找到了dom元素,并且什么都不做(在最好的情况下)!

下面是一篇关于$(function() {})(的$(document).ready()缩写形式)

+0

是的,把它放在身体标签之前是最好的解决方案(我的激光的第一声,甚至在突出它之前)。页面加载速度更快,因为它可以在解释JavaScript之前显示html元素。 – Stefan 2013-03-11 15:44:11

+0

好点,我更新了我的爱人。谢谢 – Stefan 2013-03-11 16:44:15

0

添加在头部以下参考

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 

您可以在页面上的任何位置插入。

<script> 

$(document).ready(function(){ 
    var one = $('#col_1').height(), 
    two = $('#col_2').height(), 
    remaining_height = parseInt($(window).height() - one - two); 
    $('#col_3').height(remaining_height); 
}); 

<script>