javascript module.js
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript module.js相关的知识,希望对你有一定的参考价值。
//whatever we want to make public, be attach to nsp
//nsp points to MAINAPP
var MAINAPP = (function(nsp) {
/*
DOM Functionality
*/
var doc = document,
$ = function(domElement) {
if (!singleSelector(domElement)) {
try {
return doc.querySelectorAll(domElement);
} catch(e) {
console.log(e);
}
} else {
if (domElement.indexOf('#') === 0) {
try {
return [(doc.getElementById(domElement.substring(1,domElement.length)))];
} catch(e) {
console.log(e);
}
} else if (domElement.indexOf('.') === 0){
try {
return doc.getElementsByClassName(domElement.substring(1,domElement.length));
} catch(e) {
console.log(e);
}
} else {
try {
return doc.getElementsByTagName(domElement);
} catch(e) {
console.log(e);
}
}
}
},
singleSelector = function(str) {
var arr;
arr = str.split(" ");
if (arr.length === 1 && numChar(str, "#") <= 1 && numChar(str, ".") <= 1) {
return true;
} else {
return false;
}
},
assignEvent = function(de, event, funct) {
//use for loop since node list is not an array
try {
for (let i = 0; i < de.length; i++) {
de[i].addEventListener(event, funct);
}
} catch(e) {
console.log(e);
}
},
data = function(de, term) {
var arr = [];
if (de.length > 1) {
for (let i = 0; i < de.length; i++) {
arr[i] = de[i].getAttribute('data-' + term);
}
} else {
return de[0].getAttribute('data-' + term);
}
},
addClass = function(de, cls) {
for (let i = 0; i < de.length; i++) {
if (de[i].classList) {
de[i].classList.add(cls);
} else {
de[i].className += ' ' + cls;
}
}
},
removeClass = function(de, cls) {
for (let i = 0; i < de.length; i++) {
if (de[i].classList) {
de[i].classList.remove(cls);
} else {
de[i].className.replace(/\bcls\b/,'');
}
}
};
/*
String Functionality
*/
var numChar = function(str, char) {
//return (str.match(new RegExp(char, 'g')) || []).length;
return (str.split(char).length - 1);
},
breakOut = function(str, delim) {
var arr = str.split(delim);
return arr.map(function(val) {
return val.trim();
});
};
/*
Other Utilities
*/
var domReady = function(funct) {
doc.addEventListener('DOMContentLoaded', function(){
if (typeof funct === "function") {
funct();
}
}, false);
};
/*
Quiz Functionality
*/
var initQuiz = function() {
assignEvent($('.fill-in-submit.btn-primary'),'click', function() {
hideFeedback();
checkAnswer($('#q01_ans')[0].value);
});
},
checkAnswer = function(value) {
var ans,
correct,
result;
if (value !== "") {
ans = breakOut(data($('#q01'), 'answer'), ",");
correct = ans.every(function(val) {
return (value.indexOf(val) > -1);
});
result = (correct) ? 'correct' : 'incorrect';
displayFeedback(result);
} else {
displayFeedback('no-answer');
}
},
displayFeedback = function(result) {
var feedback = $('.feedback.' + result);
addClass(feedback, 'visible');
},
hideFeedback = function() {
var feedback = $('.feedback.visible');
removeClass(feedback, 'visible');
};
/*
Setup
*/
domReady(function() {
initQuiz();
});
//public methods and properties
nsp.displayFeedback = displayFeedback;
nsp.$ = $;
return nsp;
//if MAINAPP exists, it passes that in otherwise creates a new object
})(MAINAPP || {});
//domUtil.js
var UTIL = (function(u) {
/*
DOM Functionality
*/
var doc = document,
$ = function(domElement) {
if (!singleSelector(domElement)) {
try {
return doc.querySelectorAll(domElement);
} catch(e) {
console.log(e);
}
} else {
if (domElement.indexOf('#') === 0) {
try {
return [(doc.getElementById(domElement.substring(1,domElement.length)))];
} catch(e) {
console.log(e);
}
} else if (domElement.indexOf('.') === 0){
try {
return doc.getElementsByClassName(domElement.substring(1,domElement.length));
} catch(e) {
console.log(e);
}
} else {
try {
return doc.getElementsByTagName(domElement);
} catch(e) {
console.log(e);
}
}
}
},
singleSelector = function(str) {
var arr;
arr = str.split(" ");
if (arr.length === 1 && numChar(str, "#") <= 1 && numChar(str, ".") <= 1) {
return true;
} else {
return false;
}
},
assignEvent = function(de, event, funct) {
//use for loop since node list is not an array
try {
for (let i = 0; i < de.length; i++) {
de[i].addEventListener(event, funct);
}
} catch(e) {
console.log(e);
}
},
data = function(de, term) {
var arr = [];
if (de.length > 1) {
for (let i = 0; i < de.length; i++) {
arr[i] = de[i].getAttribute('data-' + term);
}
} else {
return de[0].getAttribute('data-' + term);
}
},
addClass = function(de, cls) {
for (let i = 0; i < de.length; i++) {
if (de[i].classList) {
de[i].classList.add(cls);
} else {
de[i].className += ' ' + cls;
}
}
},
removeClass = function(de, cls) {
for (let i = 0; i < de.length; i++) {
if (de[i].classList) {
de[i].classList.remove(cls);
} else {
de[i].className.replace(/\bcls\b/,'');
}
}
};
//public methods and properties
u.$ = $;
u.assignEvent = assignEvent;
u.data = data;
u.addClass = addClass;
u.removeClass = removeClass;
return u;
})(UTIL || {});
// stringUtil.js
var UTIL = (function(s) {
/*
String Functionality
*/
var numChar = function(str, char) {
//return (str.match(new RegExp(char, 'g')) || []).length;
return (str.split(char).length - 1);
},
breakOut = function(str, delim) {
var arr = str.split(delim);
return arr.map(function(val) {
return val.trim();
});
};
//public methods/properties
s.numChar = numChar;
s.breakOut = breakout;
return s;
})(UTIL || {});
//generalUtil.js
var UTIL = (function(g) {
/*
Other Utilities
*/
var domReady = function(funct) {
doc.addEventListener('DOMContentLoaded', function(){
if (typeof funct === "function") {
funct();
}
}, false);
};
g.domReady = domReady;
return g;
})(UTIL || {});
以上是关于javascript module.js的主要内容,如果未能解决你的问题,请参考以下文章
Gulp Error: Cannot find module 'jshint/src/cli'
在 Node.js 中声明多个 module.exports
微信微信小程序 微信开发工具 创建js文件报错 pages/module/module.js 出现脚本错误或者未正确调用 Page()