Jquery Formatierung, Anfänger Syntax Problem...?!

Hi,
das eigentlich Problem ist das ich das .wrap noch im .each drinnen aufgerufen habe. Das kann dann natürlich nicht funktionieren wei ldort ja erst die li erzeugt werden.

Um jetzt die UL zusammenzubauen gibt es zig Möglichkeiten. Eine ist dann in dem Beispiel:

Code:
<!DOCTYPE html>
<html>
<head>
   <title>jquery reads xml</title>
   <meta charset="UTF-8">
   <link rel="stylesheet" href="http://jquerymobile.com/demos/1.3.0-rc.1/css/themes/default/jquery.mobile-1.3.0-rc.1.css"/>
   <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
   <script src="http://jquerymobile.com/demos/1.3.0-rc.1/js/jquery.mobile-1.3.0-rc.1.js"></script>

<body>
<div data-role="page">
	<div id="mediaContainer">
		<ul data-role="listview" ></ul>
	</div>
</div>

<script type="text/javascript">

	$(document).ready(function()
	{

		var mc = $('#mediaContainer');
		      mcUl = $('#mediaContainer ul');

		// ganze XML-datei einlesen und in variable 'XMLmediaArray' speichern
		$.get("media.xml", function(XMLmediaArray){
		
			if (mcUl.length === 0) {
				ul = $("<ul data-role='listview' >");
				mc.append(ul);
			}
			
			
		
			// suche nach jedem (each) 'bluray' abschnitt
			$(XMLmediaArray).find("bluray").each(function(){

				// gefundenen abschnitt in variable zwischenspeichern (cachen)
				var $myMedia = $(this);
				// einzelne werte auslesen und zwischenspeichern
				// attribute: funktion 'attr()'
				// tags: nach dem tag suchen & text auslesen
				var id = $myMedia.attr("id");
				var title = $myMedia.attr("title");
				var description = $myMedia.find("description").text();
				var genre = $myMedia.find("genre").text();

				// daten von jeden treffer ausgeben
				// unformatiert...nur zum zeigen!
				// append = inhalt/string dem kontainer anhängen



				mcUl.append("<li>"+title+"<p>"+id+" # "+description+" # "+genre+"</p></li>");
				//$ ("#mediaContainer li").wrapInner("<ul data-role='listview' >");

			});

			mcUl.listview('refresh');

		});
	});

</script>

</body>
</html>

Pass bitte die Bibliotheken an. Da stehen jetzt irgendwelche Versionen drinnen.
Und nochwas, für jQuery Mobile wird jede Seite mit einem
HTML:
<div data-role="page"></div>
erzeugt.
http://jquerymobile.com/demos/1.0a4.1/docs/pages/docs-pages.html

Ein fettes Dankeschön geht auch an Wiesel der mir da grad im Chat geholfen hat die Fehler zu finden.

Viele Grüße und eine Gute Nacht.
 
Hi Jan (und Wiesel),

ja wie cool ist das denn, es läuft! *freu*
Ich geb euch beiden hiermit eine virtuelles Bierchen aus ;)
Also besten Dank nochmal!
Ich werde damit gleich mal etwas weiter herumspielen, THX

Viele Grüße
Blaubär
 
...sorry, noch eine kurze Frage.
Irgendwie scheint das "mcUl.listview('refresh');" nicht immer richtig zu funktionieren, denn erst wenn ich die Seite manuell refreshe läuft alles normal?
Oder liegt das daran, dass ich von einer anderen Seite komme, die dann erst das Xml-Auslese-Script ausführt?
LG, Blaubär
 
Hallo Jan,

leider funktioniert das mit "mc.trigger('create');" bei mir auch nicht?
Habe gerade auch über eine setTimeout Funktion versucht das listview zu refreshen, geht auch nicht.
Die setTimeout Funktion läuft auch erst ab, nachdem von Hand refresht wurde.

Gruß
 
Halt, alles zurück!
Habe nochmal meine Seitenstrukturen überarbeitet, jetzt funktioniert es wunderbar! *schäm*
LG, Blaubär
 
Hm, weiß gerade nicht wie Du das meinst, bzw. was wohin soll?
...aber es läuft ja :), oder habe ich damit dann mit anderen Konsequenzen zu rechen?

LG
 
Ich mein das mcUl.listview('refresh'); einfach eine Hierachie nach oben.
heißt es muss ein }); von dahinter nach davor kopiert werden.
oder habe ich damit dann mit anderen Konsequenzen zu rechen?
bin ich mir jetzt nicht sicher. Aber wenn die .get() Funktion nicht ausgeführt wird wird auch das refresh nicht reledigt. Das ist mal sicher.

Grüße
 
Ahso, ok - dass hatte ich vorhin, als das noch nicht richtig laufen wollte, auch schon an der Stelle ausprobiert.
Geht jetzt auf jeden Fall beides :)

Gruß, Blaubär
 
Zurück