【发布时间】:2014-07-26 20:30:13
【问题描述】:
我正在为我的项目创建命名空间,并且我想在 jQuery(document).ready() 中调用一个函数。
使用the self encapsulated jQuery namespace structure 我可以使示例工作。
但是一旦我将MYNAMESPACE.myFunction();inside jQuery(document).ready() 移动,它就不再工作了。
这可能是因为一些我不明白的 jQuery 逻辑。任何人都可以把我推向正确的方向吗? Here is my fiddle.
代码:
//HTML
<div class="test"> test </div>
//JS
jQuery(document).ready(function($) {
if($('.test').text().length > 0){
MYNAMESPACE.myFunction(); //function call
}
});
;var MYNAMESPACE = {};
;(function($) {
MYNAMESPACE = {
myFunction: function()
{
$('.test').text('Text changed');
}
}
})(jQuery);
// MYNAMESPACE.myFunction(); //<-- This works
【问题讨论】:
-
你为什么要重新定义
MYNAMESPACE? -
@DanielA.White,如果你不在外部范围内声明命名空间,你会得到
ReferenceError: MYNAMESPACE is not defined’.。你可以自己测试一下。 PS。我只是按照教程进行操作;)
标签: javascript jquery namespaces