javascript - jquery/.js 脚本的顺序

标签 javascript jquery

由于渲染 .js 脚本的顺序,我的应用程序遇到了真正的问题。例如http://jsfiddle.net/qCAW3/1 ,除非我更改 js 脚本的加载顺序,否则这些项目将不会变为可拖动。

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

任何人都可以解释一下造成这种情况的原因吗?如果我更改顺序以使可拖动项目正常工作,那么我的应用程序的其他 javascript 部分将停止运行。

最佳答案

依赖关系,即某些代码依赖于其他代码的情况。在网页上,JavaScript 文件按照声明的顺序执行。这对于依赖关系很重要!

假设您有两个 .js 文件,如下所示:

// person.js
var Person = function(name) {
  this.name = name;
};

Person.prototype.greet = function() {
  alert("Hi, " + name);
}

另一个文件:

// roster.js
var roster = [
  new Person("Alex"),
  new Person("Eddy")
];

for (var i = 0; i < roster.length; i++) {
  roster[i].greet();
}

如果我们先加载roster.js,它就会爆炸。 Person 构造函数尚不可用,无论如何调用它都会引发期望。

如果您加载 person.js,然后加载 roster.js,那么当名册代码运行时,您就可以使用 Person

<小时/>

就您而言,出于完全相同的原因,您需要在使用 jQuery 的任何代码之前加载 jQuery。

关于javascript - jquery/.js 脚本的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17097093/

相关文章:

JavaScript - 我想要但按钮有延迟,因此只能每 15 秒单击一次

javascript - lightbox2 模态在部署时不显示图像的问题

javascript - jQuery + JSONP + 雅虎查询语言

jquery - 何时使用 $(this).text() 以及何时使用 $.text([this])

jQuery 1.4.2 : . 是 (":focus")给出语法错误

javascript - 带有 Rails 3.1 的 ActiveAdmin 破坏了 javascript

javascript - 创建具有可变属性的对象

用于触摸屏设备的 JavaScript 库

javascript - jQuery 推迟了 : Nesting promises in methods, 最后一次回调太早

javascript - .on ('click' ) 有效, .css ('display' ,'block' ) 有效,但不在一起