【发布时间】:2016-03-01 16:53:45
【问题描述】:
我的项目中有一个 jquery 模块模式。我不明白它在做什么以及为什么这样做。
有一个自定义插件 jquery.skInit.js 制作
(function($) {
$.fn.skInit = function() {
return this.each(function(i,element) {
var e = jQuery.Event('skInit');
e.container = $(element);
$(':root').trigger(e);
});
};
$.skInit = function(handler) {
$(':root').on('skInit',handler);
};
}(jQuery));
and skInit.cs jquery file
$(document).ready(function () {
'use strict';
//console.log('skInit');
$(':root').skInit();
});
and in remaining js files events are attached as follow. one of js file example
$(document).ready(function () {
'use strict';
$.skInit(function (e) {
e.container.find('.csSpotTeaserInner').csSpotlightTeaserToggle();
e.container.find(".sliderBarDiv").mCustomScrollbar();
});
});
为什么以这种方式编写这种设计模式...它如何优化和提高性能...请解释一下是否有人可以。我的项目是 grunt 项目,其中所有 javascript 都被丑化为 bottom.js 脚本.
【问题讨论】:
-
您展示的代码使用了许多模式。你具体指的是哪一个?
-
我只是想知道制作 skInit() 函数的好处
-
相比什么?在每个挂钩事件的模块中写出
$(':root').on('skInit', function(e) { … })?
标签: javascript jquery gruntjs pagespeed grunt-contrib-uglify