2012-04-09 8 views
-1

Ich weiß, es gibt andere Beiträge wie diese, aber ich weiß nicht, ob es angemessen ist, eine Frage zu jemand anderen Frage zu stellen. Hier ist der Link, wo ich denke, dass ich die Antwort auf meine Frage, was zu tun ist: other question. Ich denke, dass die letzte Lösung auf der Seite wahrscheinlich die zu verwendende Lösung ist.Jquery-Skripte am Leben erhalten, nachdem Dritte Ajax

Meine Frage, die immer noch bleibt, ist wie, um dies auf mein Szenario anzuwenden. Meine Skripte sind alle in einer äußeren Funktion enthalten. Es basiert auf diesem Konzept basiert:

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

}); 

ich schließlich bin versucht, das Problem meiner Skripte löst nicht funktioniert, nachdem ein Ajax-Aufruf Inhalt ändert. Die verknüpfte Frage ist "jquery: trigger $ document.ready (so dass AJAX-Code, den ich nicht ändern kann, ausgeführt wird)". Die Antworten darauf, besonders die letzte, scheinen das zu sein, wonach ich suche, aber ich bin nicht sicher, wie ich das mit meinem Szenario machen soll.

+1

Was genau war die Frage? – adeneo

+0

Haben Sie den Link besucht? Ich habe auch meine Frage zur Klärung bearbeitet. –

+0

Enthält der Inhalt, den Sie über Ajax laden, Javascript, das Sie ausführen müssen, oder ist es nur so, dass die Funktionen, die Sie bereits haben, nicht mit dem geladenen Inhalt funktionieren? – adeneo

Antwort

0

Ich fand die Antwort mit Delegierung mit 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(); 

Auf diese Weise werden alle meine Skripte nach einem Content-Update durch eine Änderung() Ereignis oder wenn meine Taste mit der Klasse ‚productSubmitInput‘ geklickt angestiftet rebind.

Verwandte Themen