【问题标题】:How Do You Know How To Initialize A Script?您如何知道如何初始化脚本?
【发布时间】:2015-01-03 20:03:50
【问题描述】:

2 个问题:

1) 您如何知道如何初始化脚本?代码是否总是在js文件中的某个位置,是否必须从头开始创建初始化代码等?

2) 为什么不必“激活”/初始化 jQuery 脚本?我使用的其他脚本需要激活,那么为什么 jQuery.js 不需要内部脚本来启动它?

只是想了解一下这个概念,在此先感谢!

【问题讨论】:

  • 你是贾登·史密斯吗?
  • 哈哈,没有。这是从哪里来的?

标签: javascript jquery initialization


【解决方案1】:

在网页中,JavaScript 是通过以下 HTML 标签加载和执行的:

<script src="scriptFile"></script>

或内联

<script>
 ... code here ...
</script>

在这两种/任何一种情况下,加载/找到的 JavaScript 都会立即按照找到的顺序从源代码的顶部一直执行到底部。

没有像在 Java 或 C 中那样对 JavaScript 进行“初始化”。没有类似于以下中的 main() 函数:

class X {
   public static main(String args[]) {
      ....
   }
}

在 JavaScript 代码中只是从顶部开始“执行”。

看到 JavaScript 代码以等待 DOM 完全加载和准备开始的情况并不少见。例如一个启动的脚本:

$(function() {
   // ... code here ...
});

应该被读作执行名为“$”的函数并传递给它一个匿名函数,该函数应该在 DOM 加载时运行。所有这些符号、花括号、方括号等都可能令人困惑,但理解它们的最佳方法是仍然意识到所有代码从上到下运行......它可能不会立即运行。例如:

var x = function() {
   // ... some code ...
};
x();

尽管函数定义中可能有大量代码,但在调用函数之前它不会运行。在 JavaScript 中,将代码定义与代码执行分开。

另请参阅此相关问答:

main() function in JavaScript?

【讨论】:

  • 可能值得注意的是,一些 JavaScript 库使用/推荐回调函数来初始化,例如 jQuery 的 document.ready。
【解决方案2】:

Kolban 回答了这个问题,但就您的“其他脚本”而言,这很可能是因为这些脚本在某些元素上运行。但是,您需要明确告诉脚本您希望它对哪些元素进行操作。这通常是这样发生的:

$(document).ready(function () {
    $('#myElement').scriptName();
}

这告诉您的脚本它可以对 ID 为 myElement 的元素进行操作。如果此“初始化”不存在,则脚本可能会通过修改您不希望它修改的内容而导致意外的副作用。

【讨论】:

  • 为什么这些sn-ps的代码放在html而不是外部js中?
  • 它们不必放在 HTML 中。我倾向于将它们放在外部 js 文件中。
猜你喜欢
  • 1970-01-01
  • 2016-09-25
  • 1970-01-01
  • 1970-01-01
  • 2019-02-09
  • 2010-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多