在尝试实现配置 javascript 文件以启用/禁用基于开发或生产环境的用户界面功能时,我一直注意到一些奇怪的行为,并且可以使用一些说明。
这是一个平面应用程序,我将 javascript 拆分为三个文件:index.js、dashboard.js 和 taxonomy.js。
<script type = "text/javascript" src = "/static/js/taxonomy.js"></script>
<script type = "text/javascript" src = "/static/js/dashboard.js"></script>
<script type = "text/javascript" src = "/static/js/index.js"></script>
<script type = "text/javascript" src = "/static/js/config.js"></script>
index 脚本处理登录、注销和元素初始化功能。其定义为
$(document).ready(function(){
$.ajax({
//query db for login
success : function(){
loginHandler()
}
});
function loginHandler(){
initializeDashboardElements()
initializeTaxonomyElements()
}
在 taxonomy.js 中,没有$(document).ready()
定义,但initializeTaxonomyElements()
存在,它将 jQuery UI 绑定应用到指定的 HTML 元素。一个这样的元素是一个标签小部件,它目前包含 4 个标签,但预计会增长。
在里面config.js
,我有这个用于生产环境:
$(document).ready(function(){
$("#tabs").tabs("option", "disabled", [1, 2]);
});
鉴于此设置,我得到一个错误
Error: cannot call methods on tabs prior to initialization; attempted to call method 'option'
我也在声明中尝试过initializeTaxonomyElements()
这个$(document).ready()
。发生同样的错误。
有什么建议可以解决这个问题吗?