我试图保持我的html干净,因此需要通过所有JavaScript / jquery逻辑发生的app.js文件使用库/插件。我正在使用FastClick库来忽略300ms的抽头延迟并以这种方式对其进行初始化。
jQuery(document).ready(function ($) {
'use strict';
/* Load and initialize FastClick, ommits 300ms tap delay */
$.getScript('lib/fastclick.js', function () {
new FastClick(document.body);
}); /* END FastClick */
}); /* END jQuery */
这在语义上有意义吗,而不是在html页面中添加fastclick.js文件,这样做是否会更加有害?
最佳答案
从fastclick docs的角度来看,它具有语义意义,并且看起来没有害处。
在JavaScript捆绑包中包含fastclick.js或将其添加到HTML页面中...
他们说将它作为串联文件或独立文件包含是安全的。您可以随意包含FastClick源代码,但您认为合适。
实际上,他们的文档使FastClick的初始化变得复杂。 document.documentElement
属性在JavaScript开始执行时就可用,它表示<html>
元素。可以将其用作FastClick的根元素,而无需DOMContentLoaded或domready事件处理程序:
new FastClick(document.documentElement);
无需事件处理程序。现在,您可以根据需要在页面加载时以及在解析完整的HTML文档之前响应点击。
编辑:@jungy在他的评论中提出了一个观点:
...您正在等DOM准备好之后再下载库。
完整的代码示例:
jQuery.getScript("lib/fastclick.js", function() {
new FastClick(document.documentElement);
});