首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在嵌套的IIFE模块中引用父JavaScript函数?

问如何在嵌套的IIFE模块中引用父JavaScript函数?
EN

Stack Overflow用户
提问于 2014-06-05 14:36:54
回答 1查看 201关注 0票数 0

下面的代码..。在setTimeout匿名函数中,引用alert.hide()方法的正确方法是什么?把整个调用写成admin.alert.hide();是正确的吗?或者有更好的方法来引用admin而不必直接调用它?

代码语言:javascript
复制
var admin = (function(jQuery, window, document, undefined) {
    return {
        loader : (function(admin) {
            var fade = 75;
            var loader = '#loader';
            return {
                show : function () {
                    jQuery(loader).stop().fadeIn(fade);
                },
                hide : function() {
                    jQuery(loader).stop().fadeOut(fade);
                }
            }
        })(),
        alert : (function() {
            var timeout;
            var fade = 500;
            var milliseconds = 1000;
            var alert = '#alert';
            return {
                timeout : timeout,
                show : function(message) {
                    jQuery(alert).find('p').text(message);
                    jQuery(alert).stop().fadeIn(fade);
                    clearTimeout(this.timeout);
                    this.timeout = setTimeout(function() {  }, milliseconds);
                },
                hide : function() {
                    jQuery(alert).stop().fadeOut(fade);
                }
            }
        })()
    }
})(jQuery, window, document);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-05 14:40:29

你可以这样做:

代码语言:javascript
复制
return 
{
    timeout : timeout,
    show : function(message) 
    {
        jQuery(alert).find('p').text(message);
        jQuery(alert).stop().fadeIn(fade);
        clearTimeout(this.timeout);
        this.timeout = setTimeout((function() { this.hide(); }).bind(this), milliseconds);
    },
    hide : function() 
    {
        jQuery(alert).stop().fadeOut(fade);
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24063088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档