我在整个应用程序中使用了一个JS文件。它的顶部看起来像这样:
$(document).ready( function() {
if( $('#element-a').length ) {
var featureA = new ElementAFeature( $('#element-a') );
}
if( $('#element-b').length ) {
var featureB = new ElementBFeature( $('#element-b') );
}
// repeat ad nauseam for elements C thru Z etc etc
});
// actual objects and logic go here
它有效,但它有点难看。没有在不同页面上运行不同的脚本,有什么方法可以整理它吗?
答案 0 :(得分:1)
在每个页面中执行类似的操作
window.MYAPP = window.MYAPP || {};
window.MYAPP.element = $("page-element");
window.MYAPP.feature = new ElementXFeature(window.MYAPP.element);
然后将您的init脚本修改为
$(document).ready( function() {
var feature = window.MYAPP.feature;
//Use feature here.
});
如果您为每个页面编写了大量特定的init代码,您可能需要考虑同时使用全局init方法并为每个页面定义本地方法,并传递全局init所需的任何上下文。
window.MYAPP.initMethod = function(context) {}
//in global init
if (typeof window.MYAPP.initMethod === "function") {
window.MYAPP.initMethod({ pageSpecificSetting : 0});
}