Wie re-attach jQuery-Funktionen nach dem AJAX-content laden?

Gibt es ein paar jQuery-UI-Funktionen, die ich nennen diesen Weg:

jQuery(document).ready(function(){
    jQuery(".accordion").accordion();
});

Aber meine Seite ist AJAX-basiert und einige Seiten verwenden, Akkordeon, einige können es nicht verwenden. Es gibt wie 30+ andere Funktionen müssten neu befestigt, die eine problematische Entwicklung Aufgabe. Gibt es eine clevere Möglichkeit dieses Problem zu beheben, so dass jeder neue .accordion wird diese automatisch angehängt?

Mögliche Lösungen und warum Sie nicht funktionieren:

  • auslösende Dokument bereit, AJAX-Aufruf Ende wäre ideal, aber das ist nicht möglich
  • mit load() ist keine option, da es ein CMS, wo Benutzer können die Installation von plugins - das bedeutet, dass unbekannte Anzahl von unbekannten Funktionen, plugins hinzufügen, die nur mit jQuery(document).ready();
  • re-attach-Funktionen auf ajaxComplete - mit einer unbekannten Anzahl von unbekannten Funktionen, dies wird nicht funktionieren ohne änderung der AJAX-Skript jedes mal, wenn Sie installieren oder deinstallieren ein jQuery-plugin,
  • Sind Sie Aufbau einer single page Web-App? Haben Sie sich überlegt ein framework wie Backbone?
  • Vorsichtig aufrufen $(".accordion").accordion() mehrmals, da plugins nicht unbedingt behandeln mehrere Initialisierungen auf das gleiche element richtig. Um auf der sicheren Seite zu sein, empfehle ich zur Ruhigstellung der Aufruf, auf die neuen Inhalte z.B. nur $("#newContent .accordion").accordion()
  • Gute Idee!
InformationsquelleAutor Atadj | 2013-02-04
Schreibe einen Kommentar