我已经和外部JS脚本文件一起运行了所有我的对象,一旦文档准备好就像这样......
jQuery(function($) {
var Main = {
run: function () {
myFunction.setup();
}
}
var myFunction = {
setup: function() {
//Do some stuff here
}
}
Main.run();
});
我希望能够只在某个页面上运行myFunction.setup(),否则我会遇到错误,如果该方法在页面上寻找不存在的元素,例如幻灯片,菜单等。< / p>
目前我已经通过检查元素是否存在.length,如果它确实运行了方法的其余部分,但我想知道是否有更好的方法?也许就好像在基于页面im加载时可以将变量发送到脚本文件中所以它知道运行什么方法?
任何帮助都会非常感激。
由于
贾尔斯
答案 0 :(得分:1)
Paul Irish有一个很好的方法来完成这个,使用body标签中的ID和类来执行某些代码块:
http://paulirish.com/2009/markup-based-unobtrusive-comprehensive-dom-ready-execution/
答案 1 :(得分:0)
这种事情可能有所帮助:
特定于网页
var page_config = {
setup_allowed: true
// ... more config
};
<强>通用强>
var Main,
myFunction;
(function ($, _config) {
myFunction = (function () {
var _public = {};
if (_config.setup_allowed === true) {
_public.setup = function () {
};
}
return _public;
})();
Main = (function () {
var _public = {};
if (typeof myFunction.setup !== "undefined") {
_public.run = function () {
myFunction.setup();
};
// Run it as we had Main.run() before
_public.run();
}
return _public;
})();
})(jQuery, page_config);
这种方式Main.run()
和myFunction.setup()
仅在page_config
中指定时才可用。
这是你可以玩的working example。这可能对您的特定要求有点冗长,但希望它在某种程度上有所帮助: - )