2012-04-09 8 views
-1

我知道還有其他類似的帖子,但我不知道是否適合問一個關於別人問題的問題。這裏是我認爲我找到了我的問題的答案的鏈接:other question。我認爲網頁上的最後一個解決方案可能是使用的解決方案。保持jquery腳本在第三方ajax後活着

我的問題仍然是如何將應用於我的方案。我的腳本都包含在一個外部函數中。正是基於這樣的理念:

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:觸發$ document.ready(所以AJAX代碼我無法修改執行)」。這個問題的答案,特別是最後一個,似乎是我正在尋找的,但我不知道如何在我的方案中實現這一目標。

+1

究竟是什麼問題? – adeneo 2012-04-09 18:32:03

+0

您是否訪問過鏈接?我也編輯了我的問題來澄清。 – 2012-04-09 18:51:53

+0

通過Ajax加載的內容是否包含您需要運行的JavaScript,還是隻是您已有的功能無法與加載的內容一起使用? – adeneo 2012-04-09 19:17:29

回答

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(); 

這樣一來,我的所有腳本將被改變()事件,或者當我與類「productSubmitInput」按鈕被點擊策動一次內容更新後重新綁定。