如何全局公开和触发onready功能?

时间:2016-04-05 10:06:09

标签: javascript jquery

我将如何公开以下两个功能以进行全局访问? functionWithinOnReady();handleSomething();

theme的范围内,我可以通过以下方式触发函数:

theme.handleSomething();
theme.functionWithinOnReady();

假设我需要从第三个脚本(/ global)触发函数,我将如何以最佳方式解决这个问题?

(function($) {
    "use strict";

    var theme = {

        onReady : function(){
            functionWithinOnReady = function() {
                //want to access this globally
            }
        },
        handleSomething: function() {
            //want to access this globally
        },
        onLoad : function() { },
        onResize : function() { }
    };


    $(document).ready( theme.onReady );
    $(window).load( theme.onLoad );
    $(window).resize( theme.onResize );

})(jQuery);

1 个答案:

答案 0 :(得分:1)

您可以将theme附加到窗口(全局)或jQuery

(function($) {
    "use strict";

    $.theme = {

        onReady : function(){
            functionWithinOnReady = function() {
                //want to access this globally
            }
        },
        handleSomething: function() {
            //want to access this globally
        },
        onLoad : function() { },
        onResize : function() { }
    };


    $(document).ready( $.theme.onReady );
    $(window).load( $.theme.onLoad );
    $(window).resize( $.theme.onResize );

})(jQuery);

现在您可以在任何地方访问$.theme,如果它应该在jQuery集合中使用,您可以使用$.fn.theme对其进行原型设计。