在javascript中从另一个模块更新全局变量?

时间:2010-10-22 10:54:11

标签: javascript global-variables

我如何实现它?

我有一个名为“tooltip”的模块,它具有“淡入淡出”功能,而该功能又使用全局“元素”变量。该变量是对DOM元素的引用。我想从另一个名为“lightbox”的模块更新它,所以我可以让“淡入淡出”功能处理淡入效果。我的所有模块都是使用闭包声明的。

    var tooltip = function{
       var element;
       return{
          fade: function(){ fade code goes here...}
       };
    }();

我可以执行以下操作来更新灯箱模块中的“元素”吗?

tooltip.element = document.getElementByID('lightbox-con');

没有jQuery代码请...

1 个答案:

答案 0 :(得分:1)

如果使用模块表示 object ,那么您可以这样做:

var tooltip = {
    element: null,
    fade: function() {
        //fade code goes here...
        // you can access the element via this.element
    }
}

然后您可以按照描述更新元素:

tooltip.element = document.getElementByID('lightbox-con');

但如果element仅用于fade函数,您还可以考虑将元素传递给该函数:

var tooltip = {
    fade: function(element) {
       //fade code goes here...
    }
}

并且做:

tooltip.fade(document.getElementByID('lightbox-con'));

这取决于你真正想做的事情。