2016-05-29 5 views
0

Ich habe diese Funktion, die anfänglich funktioniert, aber wenn ich die Seite ändern, um ausgeblendete Elemente anzuzeigen, funktioniert die Funktion nicht mit den Elementen, die einmal ausgeblendet wurden.Wie kann ich meine jQuery-Funktion mit versteckten Elementen arbeiten, wenn sie sichtbar gemacht werden

jQuery(document).ready(function($) { 

$(".paragraph-div").hide(); 

$(".toggle-div").click(function() 
        { 
if ($(this).next(".paragraph-div").is(":visible")) { 
    $(this).next(".paragraph-div").hide(); 
    $(this).text("More Info"); 
} else { 
    $(this).next(".paragraph-div").show(); 
    $(this).text("Less Info"); 
} 
}); 

}); 

ich jsfiddle hier gemacht habe: https://jsfiddle.net/6k0bshb6/44/

So was passiert ist, es funktioniert nur auf .paragraph-div ‚s, die zunächst sichtbar auf Seite Last sind so, wenn ich neuen Absatz divs zeigen (durch die Tabelle Filterung oder Mit der Schaltfläche Zeige mehr Zeilen auf meinem Tisch) sind sie bereits geöffnet, wenn sie ausgeblendet werden sollen und die Klick-Funktion nicht funktioniert.

Ich bin ziemlich neu zu jQuery und weiß nicht die richtige Methode, um dies zu tun, aber ich denke, es hat etwas mit ("document").ready zu tun Ich denke, ich muss das ändern, aber was soll ich es ändern?

Wenn Sie möchten, um das Problem zu sehen, werden Sie bei http://mobilereactor.co.uk/shop/mobile-phones/apple-iphone-5s-32gb-space-grey-deals/

+1

Entfernen Sie die Zitate um '" Dokument "' :) – 4castle

+0

Ich sehe nicht, wie das überhaupt überhaupt funktionieren würde. Der erste Parameter, der an eine jQuery-Ereignisfunktion übergeben wird, ist das Ereignisobjekt und nicht das jQuery-Objekt. Sie verwenden den ersten Parameter (das Ereignisobjekt) so, als wäre es in dieser Funktion jQuery. –

+2

@JohnDavidKievlan Lesen Sie die Dokumentation zu ['.ready()'] (https://api.jquery.com/ready/) und scrollen Sie nach unten zu "Aliasing the jQuery Namespace". Es ist gültig. – 4castle

Antwort

Verwandte Themen