-1

我知道还有其他类似的帖子,但我不知道问别人的问题是否合适。这是我认为我找到了我的问题的答案的链接:其他问题。我认为页面上的最后一个解决方案可能是要使用的解决方案。

我仍然存在的问题是如何将其应用于我的场景。我的脚本都包含在一个外部函数中。它基于这个概念:

jQuery.noConflict();
jQuery(function($) {

    var Engine = {
        utils : {
            functionName : function(){
                // Do stuff in here
            },
            functionName2 : function(){
                // do something else    
            }
        },
        ui : {
            functionName : function(){
                // Do stuff in here
            },
            functionName2 : function(){
                // do something else    
            }
        },
        fixes : {
            functionName : function(){
                // Do stuff in here
            },
            functionName2 : function(){
                // do something else    
            }
        },
        tweaks : {

            functionName : function(){
                // Do stuff in here
            },
            functionName2 : function(){
                // do something else    
            }
        }
    };


    Engine.utils.functionName();
    Engine.utils.functionName2();

    Engine.ui.functionName();
    Engine.ui.functionName2();

    Engine.fixes.functionName();    
    Engine.fixes.functionName2();   

    Engine.tweaks.functionName();
    Engine.tweaks.functionName2();

});

我最终试图解决我的脚本在 ajax 调用更改内容后无法正常工作的问题。链接的问题是“jquery : trigger $document.ready(所以我无法修改的 AJAX 代码被执行)”。那个答案,尤其是最后一个,似乎是我正在寻找的,但我不确定如何在我的场景中使用它。

4

1 回答 1

0

我使用带 on() 的委托找到了答案。

jQuery.noConflict();
function scriptlist() {
    var $ = jQuery;
    var Engine = {
        utils : {
            functionName : function(){
                // Do stuff in here
            },
            functionName2 : function(){
                // do something else    
            }
        },
        ui : {
            functionName : function(){
                // Do stuff in here
            },
            functionName2 : function(){
                // do something else    
            }
        },
        fixes : {
            functionName : function(){
                // Do stuff in here
            },
            functionName2 : function(){
                // do something else    
            }
        },
        tweaks : {

            functionName : function(){
                // Do stuff in here
            },
            functionName2 : function(){
                // do something else    
            }
        }
    };


    Engine.utils.functionName();
    Engine.utils.functionName2();

    Engine.ui.functionName();
    Engine.ui.functionName2();

    Engine.fixes.functionName();    
    Engine.fixes.functionName2();   

    Engine.tweaks.functionName();
    Engine.tweaks.functionName2();

};

jQuery('body').on('change click.productSubmitInput',function(){
    jQuery.ready(scriptlist());
});
scriptlist();

这样,我的所有脚本将在由 aachange() 事件引发的内容更新后或当我的带有类“productSubmitInput”的按钮被单击时重新绑定。

于 2012-04-18T17:38:35.860 回答