有时候,在页面初次加载时就取得所需的全部JavaScript也是没有必要的。具体需要取得哪个脚本,要视用户的操作而定。虽然可以在需要时动态地引人<script>标签,但注人所需代码的更优雅的方式则是通过jQueiy直接加载.js文件。
向页面中注人脚本与加载HTML片段一样简单。但在这种情况下,需要使用全局函数 $.getScript(),这个全局函数与它的同辈函数类似,接受一个URL参数以查找脚本文件,参见如下代码:
复制代码 代码如下:
$(document).ready(function() {
$('#letter-c a').click(function(event) { event.preventDefault();
$.getScript('c.js');
});
});
在前一个例子中,接下来要做的应该是处理结果数据,以便有效地利用加载的文件。然而, 对于一个脚本文件来说,这个过程是自动化;换句话说,脚本会自动执行。
以这种方式取得的脚本会在当前页面的全局环境下执行。这意味着脚本有权访问在全局环境中定义的函数和变量,当然也包括jQuery自身。因而,我们可以模仿JSON的例子来准备脚本代码,以便在脚本执行时将HTML插人到页面中。现在,将以下脚本代码保存到c.js中:
复制代码 代码如下:
var entries = [
{
"term": "CALAMITY",
"part": "n.",
"definition": "A more than commonly plain and...
},
{
"term": "CANNIBAL",
"part": "n.",
"definition": "A gastronome of the old school who..."
},
{
"term": "CHILDHOOD",
"part": "n.",
"definition": "The period of human life intermediate..."
}
//省略的内容
];
var html ='';
$.each(entries, function() {
html += '<div>';
html += '<h3>' + this.term + '</h3>';
html += '<div>' + this.part + '</div>';
html += '<div>' + this.definition + '</div>';
html += '</div>';
});
$('#dictionary').html(html);
最后,单击c链接,应该会看到我们预期的结果。