在第三方ajax之后保持jquery脚本活着

时间:2012-04-09 18:29:03

标签: javascript jquery

我知道还有其他这样的帖子,但我不知道是否适合就别人的问题提问。这是我认为我找到答案的答案:other question。我认为页面上的最后一个解决方案可能就是使用它。

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

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代码被执行)”。这个问题的答案,特别是最后一个答案,似乎是我正在寻找的,但我不确定如何使我的方案工作。

1 个答案:

答案 0 :(得分: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();

这样,我的所有脚本都会在由change()事件发起的内容更新后或者点击我的带有'productSubmitInput'类的按钮时重新绑定。