2016-07-11 3 views
0

Wenn ich meine Seite zunächst laden, wähle ich alles mit einer bestimmten CSS-Klasse, und fügen Sie eine Tooltip wie folgt ("doTooltip" ist der Name des CSS Klasse):jQuery Inhalte geladen über AJAX ist von der anfänglichen Seite Ladebindungen

$(document).ready(function() { 
    $('.doTooltip').tooltip(); 
}); 

Das funktioniert super. Wenn ich jedoch zusätzlichen Inhalt über AJAX in die Seite lade, wird für alle neuen Elemente mit der doTooltip-Klasse nicht .tooltip() ausgeführt, da sie nach dem Ereignis ready() geladen wurden.

Wie kann ich jQuery anweisen, .tooltip() auf neu geladene Elemente anzuwenden, die doTooltip verwenden?

Oder ist die einzige Lösung, den mitgelieferten Code in eine Funktion zu stecken und diese Funktion jedes Mal aufzurufen, wenn ich neuen Inhalt in die Seite lade? Ich hoffe, es gibt einen besseren Weg als das, weil ich den mitgelieferten Code global verwende.

+0

Haben Sie versucht, es anzurufen, nachdem der Ajax-Anruf beendet wurde? –

+0

Welches Tooltip Plugin verwendest du? Wenn twitter bootstrap one ist, können Sie die Selector-Option übergeben, um sie auf jeder statischen Container-Ebene zu delegieren, zB: $ ('body') tooltip ({selector: '. DoTooltip'}); ' –

+0

Es ist möglich zu hören das DOMNodeInserted-Ereignis Siehe diesen Thread: http://stackoverflow.com/questions/15268661/jquery-on-create-event-for-dynamically-created-elements. Dies ist möglicherweise nicht der beste Weg, aber mir ist keine andere Möglichkeit bekannt, ohne den Tooltip manuell anzuwenden. –

Antwort

0

Sie müssen "jquery.fn.on" verwenden. Das Beispiel sieht so aus:

$(document).on('mouseover', '.doTooltip', function(){ 
    $(this).tooltip(); 
}); 

Bitte lassen Sie mir wissen, ob es funktioniert. Es hat für mich funktioniert, als ich ein ähnliches Problem hatte.

Wenn Ihr Inneres diesen Hack nicht akzeptiert, ordnen Sie dem Dokumentkörper einen Beobachter zu, der nach dem Hinzufügen eines neuen "doTooltip" -Elements fragt, und wendet den QuickInfo auf das neu eingefügte Element an. Bitte lassen Sie mich wissen, wenn Sie den Code für den Beobachter Ansatz benötigen.

Verwandte Themen