访问.js文件中的头部javascript变量jquery函数

时间:2011-07-14 03:23:54

标签: javascript jquery html

我的dom头部有一个javascript变量,我需要在外部js文件中访问它,但它似乎未定义。

在我脑海里,我有类似的东西。

 <head>
<script type="text/javascript">
    var overlayAlignment = ["left:20px","right:40px","left:50px"];
</script>
    </head>

外部.js文件

$(document).ready(function () {
alert(overlayAlignment[0]);
});

在我的外部js文件中,我想使用变量但是这样的东西一直都是未定义的,任何想法我做错了什么。

我发现如果我将overlayAlignment变量添加到.js文件中,我可以从头部的外部.js运行一个函数来设置overlayAlignment变量。

 <head>
<script type="text/javascript">
    setOverlayAlignment("value1", "value2", "values3");
</script>
</head>

外部.js文件

function setOverlayAlignment(value1, value2, value3) {
    overlayalignment[0] = value1;
    overlayalignment[1] = value2;
    overlayalignment[2] = value3;
}

当我尝试在我的jquery函数中使用它时,这仍然是未定义的。很奇怪,我以为$(document).ready告诉函数要等到dom加载运行,如果是这样的话,为什么overlayAlignment在运行时是未定义的?

我需要像这样做,因为overlayAlignment变量值只在运行时才知道。

2 个答案:

答案 0 :(得分:3)

您需要使用head标记围绕script中的JavaScript代码。

因此,您的第一个例子应该是:

<head>
<script>
var overlayAlignment = ["left:20px","right:40px","left:50px"];
</script>
</head>

你的第二个应该是:

<head>
<script>
setOverlayAlignment("value1", "value2", "values3");
</script>
</head>

答案 1 :(得分:0)

很奇怪只是尝试了这个并且它有效。奇怪的是我认为window.onload和$(document).ready是一回事。

window.onload = function () {
    $(document).ready(function () {
        alert(overlayAlignment[0]);
    });
}

当调用$(document).ready时,显然overlayAlignment尚未就绪,但是在window.onload之后它将可用。