首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >javascript:在我的代码尝试使用我的库之前,无法加载它的问题

javascript:在我的代码尝试使用我的库之前,无法加载它的问题
EN

Stack Overflow用户
提问于 2011-08-12 07:20:32
回答 2查看 1.5K关注 0票数 0

http://dl.dropbox.com/u/331982/Sandbox/comsat.html <--代码

http://dl.dropbox.com/u/331982/Sandbox/comsat.js <-- javascript文件的位置

所以,当我把所有东西都放在一个文件中时,这个方法就行了,但是我不喜欢在我的HTML中有巨大的脚本标记。

我得到的错误是其中一个拉斐尔方法是未定义的……=\

如何正确加载我的脚本?

所有内容都加载到<head>

代码语言:javascript
运行
复制
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>Comsat</title>

    <script type="text/javascript" src="http://dl.dropbox.com/u/331982/Sandbox/raphael-min.js"></script> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
    <script type="text/javascript" src="http://dl.dropbox.com/u/331982/Sandbox/comsat.js"></script> 


  <style type="text/css">
    body{
    background: url(http://i.imgur.com/Ks6Pd.jpg);
}
  </style>

</head>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-12 07:29:45

在我看来,错误在于没有定义initPlayerSelect(),我认为这是因为该函数不在全局作用域中,而是在另一个函数作用域中定义的,因此无法从initComSat()访问。

您需要这样做,以便可以从initComSat()函数内部访问initPlayerSelect()

要做到这一点,一种方法是将initPlayerSelect()代码移出它所在的块,并将其放在initComSat()之前。

仅供参考,这个特定的错误与使用JS文件或任何顺序的JS文件无关-它纯粹是一个函数作用域问题。

我看到的下一个错误是因为您在comsat.js中加载页面之前正在运行jQuery DOM访问代码:

代码语言:javascript
运行
复制
/*
    DOM Containers
*/
var cs_playerList = [];
var cs_players = $("ul.players");
// End DOM Containers

此代码在脚本加载时失败,这会导致cs_playersnullundefined,随后会导致initPlayerSelect()失败。

这样的代码只有在页面加载完成后才能运行。当页面加载时,jQuery有运行代码的$(document).ready()

票数 3
EN

Stack Overflow用户

发布于 2011-08-12 07:32:41

除了雅各布所说的,您还需要监听DOM何时加载。在该函数中,执行初始化。有许多实用程序可以做到这一点,包括jQuery函数。如果您使用的是jQuery。例如,在jQuery中,它看起来像这样:

代码语言:javascript
运行
复制
$( function()
{
  //initialize stuff here
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7034079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档