ottscho
Goto Top

JQUERY Cointainer nach Codereload definieren

Guten Morgen,

ich kämpfe gerade mit einem Script, welches beim ersten Mal funktioniert und dann nicht mehr.

Folgendes Szenarium:

Ich habe eine Website, welche geladen wird mit fertigem JQuery Code.
Der Code verweist auf ein DIV Container und hängt dort Inhalt dran.
Der DIV Container ist aber zur Ladezeit noch nicht vorhanden.

Ich habe einen Button, welcher bei Betätigung einen Inhalt per .load() nachlädt.
Dieser Inhalt beinhaltet nun auch den DIV Container div#ottTest, welcher im JQuery definiert ist.
Funktioniert soweit. Wenn ich definierte Abläuft mache, kommt dieser Code zu tragen und es klappt alles.

Jetzt gibt es aber noch einen zweiten Button. Dieser lädt ebenfalls per .load() einen HTML Code nach und überschreibt den davor gewesenen. Hier ist aber ebenfalls der DIV Container div#ottTest vorhanden. (der alte wird überschrieben.)
Jetzt klappen aber die Abläufe im Bezug auf diesen Container nicht mehr.

Ich habe mir mir Firebug den Container ausgeben lassen. Da wo es noch funktioniert ist die Ausgabe dunkleblau und es gibt Unterpunkte mit clientwidth und clientheight mit werten.
Da wo es nicht funktioniert ist der Container etwas ausgebleicht und die Unterpunkte wie clientwidth und clientheight sind 0.

D.h. er findet den Container nicht, oder wie?

Ich verstehe es nicht. Da beim lande der Seite der Container ja überhaupt nicht vorhanden ist.
Lade ich durch Button 1 .load() den Content nach, welcher div#ottTest beinhaltet so geht der Ablauf, welcher auf div#ottTest gebunden ist.
Lade ich durch Button 2 .load() den Content erneut nach und überschriebe den alten, so geht es nicht mehr!

Ich hoffe ich habe mich verständlich ausgedrückt ;)

Danke für eure Hilfe

Content-Key: 204817

Url: https://administrator.de/contentid/204817

Printed on: April 18, 2024 at 02:04 o'clock

Member: michi1983
michi1983 Apr 11, 2013 at 09:21:01 (UTC)
Goto Top
Hallo,

poste doch einfach mal den jquery Code und eventuell einen Link zu der Seite, dann kann dir sicher besser geholfen werden.

MfG
Michi
Member: ottscho
ottscho Apr 11, 2013 at 10:10:03 (UTC)
Goto Top
Hi,

die Seite ist im Wartungsmodus und kann nicht angezeigt werden. Ich kann aber per IP eure ausschließen.
Dazu bitte IP per PN, dann schalte ich euch frei und teile die Domain mit.

var $container = $('#ottTest');  

                        $container.infinitescroll({
                                    debug        : false,
                                    navSelector  : '#page-nav',    // selector for the paged navigation  
                                    nextSelector : '#page-nav a',  // selector for the NEXT link (to page 2)  
                                    itemSelector : '.artbox',     // selector for all items you'll retrieve  
                                    loading: {
                                        finishedMsg: 'No more pages to load.',  
                                        img: 'http://i.imgur.com/6RMhx.gif',  
                                        msgText  : "weitere Artikel werden geladen"  
                                    }
                                },
                                // trigger Masonry as a callback
                                function( newElements ) {
                                    // hide new items while they are loading
                                    var $newElems = $( newElements ).css({ opacity: 0 });
                                    // ensure that images load before adding to masonry layout
                                    $newElems.imagesLoaded(function(){
                                        // show elems now they're ready 
                                        $newElems.animate({ opacity: 1 });
                                        //$container.masonry( 'appended', $newElems, true ); 

                                    });
                                }
                        );

Der Cointainer #ottTest wird später per .load() erst nachgeladen.

Beim 1. Nachladen klappt es. Beim 2. Nachladen/übeschreiben klappt es nicht mehr.