0

我正在尝试改进我的 Javascript 并理解此处发布的模块 - http://css-tricks.com/how-do-you-structure-javascript-the-module-pattern-edition/

我的代码如下所示:

var
s,
ResizeContainer = {

    settings : {
        winWidth : $(window).width(),
        winHeight : $(window).height()
    },

    init : function() {
        s = this.settings
        this.bindUIActions();
    },

    bindUIActions: function() {
        console.log(s.winWidth);
    }

}

$(document).ready(function()
{
    (function()
    {
        ResizeContainer.init();
    })();
});

$(window).on('resize', function()
{
    ResizeContainer.init();
});

我试图使用此模块实现的目的是在文档准备好时简单地提醒窗口宽度,它会这样做,以及当窗口调整大小时,它不会。

谁能帮我理解为什么窗口宽度在调整大小时没有更新?

4

2 回答 2

2

试试这个小提琴http://jsfiddle.net/K2Mfd/5/,你需要在控制台选项卡中打开网络检查器才能看到结果,基本上你每次都需要计算宽度和高度:

settings : function(){
    return {
       winWidth : $(window).width(),
       winHeight : $(window).height()
    }
},

并且不要忘记替换settingssettings()您拥有的任何地方。

s = this.settings();

顺便说一句,我认为你不需要:

(function(){})();

在每个处理程序中

于 2013-05-01T15:16:08.867 回答
0

在决定哪种模块模式适合我正在开发的应用程序时,我通常会参考这篇文章:http: //www.adequatelygood.com/JavaScript-Module-Pattern-In-Depth.html

这不仅帮助我构建代码,还帮助我减少/删除全局变量。

于 2013-08-02T14:57:19.833 回答