mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Sa 27.04.2024 09:29 Benutzername: Passwort: Auto-Login

Thema: for-Schleife wird nur mit vorherigem "alert" ausgeführt vom 25.05.2012


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Allgemeines - Nonprint -> for-Schleife wird nur mit vorherigem "alert" ausgeführt
Seite: Zurück  1, 2, 3, 4  Weiter
Autor Nachricht
volle101
Threadersteller

Dabei seit: 25.05.2012
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 25.05.2012 18:12
Titel

Antworten mit Zitat Zum Seitenanfang

Auch dir erstmal besten Dank für deinen Lösungsansatz...

Entweder bin ich zu blöd oder mein Kopf macht schon Wochenende. *zwinker* So, oder so bekomme ich es mit deinem Ansatz nicht hin. Mein erstes Wundernis ist schon bei "span.galerie'-index" !?!?!? Ich habe doch gar keine Indizierung laufen!?!?!?

Ich glaube ich poste mal den entsprechenden Code der bilder.htm. Vielleicht wird dann deutlicher was ich brauche... Hier erstmal der Code:
Code:
<td class="box2" width="25%" height="190px" style="vertical-align:top;">
                        <center>
                           <a class="iframe" href="lwcf2010.htm">
                              <img border="0" src="http://www.lew-online.de/GesangVereinLyra/bilder/lwcf2010.gif" width="94" height="94"><br />
                           </a>
                                    <span class="galerie1" id="titel">3. Luckenwalder<br>Chorfestival<br>15.05.2010</span>
                                            </center>
                     </td>
                     <td class="box2" width="25%" height="190px" style="vertical-align:top;">
                                           <center>
                           <a class="iframe" href="cts2010.htm">
                              <img border="0" src="http://erzieher.bplaced.net/GesangVereinLyra/bilder/cts2010/cts2010.gif" width="94" height="94"><br />
                           </a>
                                    <span class="galerie2">Chortreffen<br>Schlieben<br>04.07.2010</span>
                        </center>
                     </td>
                     <td class="box2" width="25%" height="190px" style="vertical-align:top;">
                        <center>
                           <a class="iframe" href="fdl2010.htm">
                              <img border="0" src="http://zausel.bplaced.net/GesangVereinLyra/fdl2010/bilder/fdl2010.gif" width="94" height="94"><br />
                           </a>
                           <span class="galerie3">Fest des Liedes<br>12.09.2010</span>
                        </center>
                     </td>
                     <td class="box2" width="25%" height="190px" style="vertical-align:top;">
                        <center>
                           <a class="iframe" href="weihn2010.htm">
                              <img border="0" src="http://zausel.bplaced.net/GesangVereinLyra/weihn2010/bilder/weihn2010.gif" width="94" height="94"><br />
                           </a>
                                    <span class="galerie4">Weihnachtskonzert<br>15.12.2010</span>
                        </center>
                     </td>......................  usw.


Nun möchte ich von einer anderen Seite aus

1.) den Text der span's galerie1, galerie2, galerie3, etc. auslesen und diesen dann ohne Zeilenumbruch ausgeben.

2.) den dazugehörigen Link (jeweils class="iframe") dem Div auf der anderen Seite zuordnen.

Ich glaube das ist sehr komplex und ich kämpfe ja auch schon etliche Stunden damit. Ich dachte ich bekomme es mit js hin, aber seit zwei Tagen probiere ich es mittels jQuery.


Zuletzt bearbeitet von volle101 am Fr 25.05.2012 18:12, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 25.05.2012 19:33
Titel

Antworten mit Zitat Zum Seitenanfang

@Mod wenn schon "editieren", dann richtig. Mein Gott -.-
  View user's profile Private Nachricht senden
Anzeige
Anzeige
ChrisKam

Dabei seit: 01.07.2009
Ort: Hattingen
Alter: 38
Geschlecht: Männlich
Verfasst Fr 25.05.2012 20:05
Titel

Antworten mit Zitat Zum Seitenanfang

volle101 hat geschrieben:
Auch dir erstmal besten Dank für deinen Lösungsansatz...

Entweder bin ich zu blöd oder mein Kopf macht schon Wochenende. *zwinker* So, oder so bekomme ich es mit deinem Ansatz nicht hin. Mein erstes Wundernis ist schon bei "span.galerie'-index" !?!?!? Ich habe doch gar keine Indizierung laufen!?!?!?


Brauchst du ja auch nicht, .each(function(index)){} erledigt das für Dich für jedes Element im Stack. http://api.jquery.com/each/ für dein Problem brauchst du überhaupt keine IDs. Gib einfach jedem DIV auf deiner neuen Seite class="link" oder noch besser, pack sie alle in ein DIV mit class="links"; der Selektor wäre dann $('div.link div'). Dort solten aber dann keine anderen DIVs mehr enthalten sein.

Ich habe schon verstanden, was du machen willst, auch wenn ich den Sinn dahinter ehrlich gesagt nicht begreife. Komplex ist das auch nicht. Das HTML, dass du da verwendest ist gefühlt 1998 und eine ziemlich Katastrophe, Iframes, Tabellen usw. braucht man nur noch in Ausnahmefällen.

Was meinst du mit "den dazugehörigen Link (jeweils class="iframe") dem Div auf der anderen Seite zuordnen." - soll das DIV mit einem <a> umschlossen werden, der sein href von der anderen Seite bekommt? Dann lade den ganzen Teil ($(td.box2 a)) und hol Dir das href Attribut mit http://api.jquery.com/attr/
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
volle101
Threadersteller

Dabei seit: 25.05.2012
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 25.05.2012 21:18
Titel

Antworten mit Zitat Zum Seitenanfang

Hallo ChrisKam,

vielen Dank für deine Erläuterungen!!!

Also die Sache mit dem each habe ich tatsächlich hinbekommen. * Applaus, Applaus * Ein kleiner Fehler ist allerdings trotzdem auf getaucht: Die Inhalte werden erst ab dem 2. Div.link übernommen bzw. eingetragen. Ich habe einfach ein zusätzliches mit display:none eingesetzt und nun steht schonmal alles so da, wie ich es brauche.

Mein Problem ist jetzt der Punkt mit den hrefs. Du hast es ganz richtig erfasst:
Zitat:
das DIV mit einem <a> umschlossen werden, der sein href von der anderen Seite bekommt


Ich verstehe was du meinst, aber ich verstehe nicht was und wie
Zitat:
lade den ganzen Teil...
und
Zitat:
hol Dir das href
meint. Ich denke dafür bin ich noch viel zu kurz mit jQuery beschäftigt.

Achso, Sinn dahiter ist... Inhalte aus der Webseite auslesen und für die smartphone-variante verwenden. Wenn ich nun auf der "Original"-Galerie-Seite eine Aktualisierung vornehme, ist sie auf der mobilen Seite automatisch verfügbar.


Ja, ich weiß... Tabellen, iframes... usw. Wobei "iframe" bei mir nur als class verwendet wird. auf der tatsächlichen Seite ist es ein Div-layer der sich als colorbox über die Hauptseite legt... sowas ähnliches wie highslide. Von alle dem mal abgesehen habe ich die Seite vor 7 Jahren geschrieben und freue mich noch heute über das Ergebnis. Dafür dass ich sowas nur nebenbei mache... Wenn du neugierig sein solltest: gesangverein-lyra.de
  View user's profile Private Nachricht senden
volle101
Threadersteller

Dabei seit: 25.05.2012
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 25.05.2012 22:25
Titel

Antworten mit Zitat Zum Seitenanfang

Hallo nochmal,

also das war jetzt mein Ansatz:

Code:
$('a.link').each(
                          function( intIndex ){
                        $(this).get('http://www.gesangverein-lyra.de/bilder.htm div#galerieauswahl td.box2 a'+index,function(){
                           var newHREF = $( this ).attr('href');
                         $( this ).attr('href', newHREF);
                        });
                          }
                  );
            });


Wobei dazugehöriger html-code so aussieht:

Code:
<!--  Anfang GALERIE-LINK 2  -->
                <div class="context" style="min-height:35px; border-bottom:1px #e0e0e0 solid; background-color:#fff; cursor:pointer;">
                    <div class="listing_head">
                       <a class="link"  href="test" target="_self">
                     <div class="link" style="color:#000;font-weight:bold;">Bitte warten...</div>
                        </a>
                    </div>
                </div>
                <!--  ENDE  GALERIE-LINK 2 -->


Naja, was soll ich sagen. Es klappt mal wieder nicht so, wie gedacht. *Schnief*
  View user's profile Private Nachricht senden
volle101
Threadersteller

Dabei seit: 25.05.2012
Ort: -
Alter: -
Geschlecht: -
Verfasst Sa 26.05.2012 09:07
Titel

Leider immernoch kein Erfolg

Antworten mit Zitat Zum Seitenanfang

Guten Morgen schön,

ich habe jetzt mal neu geschraubt und ein ganz simples snippes eingesetzt. Für mich sieht das unglaublich logisch aus und sollte die attribute der href's bei allen Elementen der Klasse link ersetzen durch die geladenen hrefs aus td.bx2 a.

Das macht es aber nicht *hu hu huu*

Code:
$('.link').attr('href').each(function(intIndex ){
                  $(this).load('http://www.gesangverein-lyra.de/bilder.htm div#galerieauswahl td.box2 a'+intIndex,function(){
                  });
               });


Zuletzt bearbeitet von volle101 am Sa 26.05.2012 09:11, insgesamt 3-mal bearbeitet
  View user's profile Private Nachricht senden
ChrisKam

Dabei seit: 01.07.2009
Ort: Hattingen
Alter: 38
Geschlecht: Männlich
Verfasst Sa 26.05.2012 10:52
Titel

Antworten mit Zitat Zum Seitenanfang

Hallo Volker,

ich habe gerade nicht viel Zeit aber wenn ich das richtig überflogen habe, hast du Den Index nicht ganz richtig eingesetzt - denn die <a> Elemente in deinem Zieldokument haben kein class="link1" class="link2" usw., anders als die spans, die sehr wohl class=galerie1 class=galerie2 usw. aufweisen. Dieser Selektor
Code:
div#galerieauswahl td.box2 a'+intIndex


läuft deshalb ins Leere. Auf das Callback kannst du da ebenfalls verzichten das am Ende der load Funktion steht. Auch würdest Du so garnicht an das href Attribut des <a> Elementes, dass Du lädst, kommen. Mit dem Code wie er da steht, versucht Du das href Atrribut mit dem gesamten <a> zu ersetzen, was nicht klappen kann.

Was du machen jetzt machen solltest:

Pack den ganzen .load() Teil in eine Variable, nimm allerdings das ganze Dokument bzw. die ganze relevante Tabelle.

Für jedes each() greifst du nun nach wie vor auf die <span> aus der Variable zu, traversierst dann aber davon ausgehend von den <span> mit "galerie1", "galerie2" usw. zu den entsprechenden <a> Elementen, schnappst dir das href Attribut und wrapst Dein neues DIV in ein <a>.

*traversieren: http://net.tutsplus.com/tutorials/javascript-ajax/10-super-helpful-traversing-functions-in-jquery/
** wrappen: http://api.jquery.com/wrap/
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
volle101
Threadersteller

Dabei seit: 25.05.2012
Ort: -
Alter: -
Geschlecht: -
Verfasst Sa 26.05.2012 12:48
Titel

Antworten mit Zitat Zum Seitenanfang

Hallöchen,

danke dass du dir die Zeit genommen hast. Leider war ich immernoch nicht erfolgreich. *Schnief*

Mein Ergebnis war jetzt:
Code:
$(document).ready(function(){
               $('div.link').each(function(index){
                     $(this).load('http://www.gesangverein-lyra.de/bilder.htm div#galerieauswahl td.box2 span.galerie'+index,function(){
                        $('br', this).replaceWith('&nbsp;');
                     });
                  });

                  $('a.link').each(function(index){
                  $(this).load('http://www.gesangverein-lyra.de/bilder.htm div#galerieauswahl a#link'+index,function(refs){
                     $('div.link').parent().wrap("<a href="+refs+" target='_blank'></a>")
                  });
               });
            });


Nachdem ich damit keinen Erfolg hatte, kam ich auf die Idee es so ähnlich wie bei den spans zu machen. Daher sind auch die a's indiziert.

Vielleicht mal den Code... Hier die entsprechende Stelle in der Ziel-Datei:
Code:
<!--  Anfang GALERIE-LINK 2  -->
                <div class="context" style="min-height:35px; border-bottom:1px #e0e0e0 solid; background-color:#fff; cursor:pointer;">
                    <div class="listing_head">
                       <a class="link"  href="test" target="_self">
                     <div class="link" style="color:#000;font-weight:bold;">Bitte warten...</div>
                        </a>
                    </div>
                </div>
                <!--  ENDE  GALERIE-LINK 2 -->
               
                <!--  Anfang GALERIE-LINK 2  -->
                <div class="context" style="min-height:35px; border-bottom:1px #e0e0e0 solid; background-color:#fff; cursor:pointer;">
                    <div class="listing_head">
                       <a class="link"  href="test" target="_self">
                     <div class="link" style="color:#000;font-weight:bold;">Bitte warten...</div>
                        </a>
                    </div>
                </div>
                <!--  ENDE  GALERIE-LINK 2 -->
               
                 <!--  Anfang GALERIE-LINK 3  -->
                <div class="context" style="min-height:35px;    ... USW


In der Quell-Datei haben den entsprechenden a's eine id gegeben, um sie gezielt auslesen zu können:

Code:
         <div id="galerieauswahl" class="galerieauswahl" name="galerieauswahl">
            <div align="center" style="z-index:1;">
               <table border="0" width="90%" cellspacing="1">
                  <tr>
                     <td class="box2" width="25%" height="190px" style="vertical-align:top;">
                        <center>
                           <a id="link1" class="iframe" href="lwcf2010.htm">
                              <img border="0" src="http://www.lew-online.de/GesangVereinLyra/bilder/lwcf2010.gif" width="94" height="94"><br />
                           </a>
                                    <span class="galerie1">3. Luckenwalder<br>Chorfestival<br>15.05.2010</span>
                                            </center>
                     </td>
                     <td class="box2" width="25%" height="190px" style="vertical-align:top;">
                                           <center>
                           <a id="link2" class="iframe" href="cts2010.htm">
                              <img border="0" src="http://erzieher.bplaced.net/GesangVereinLyra/bilder/cts2010/cts2010.gif" width="94" height="94"><br />
                           </a>
                                    <span class="galerie2">Chortreffen<br>Schlieben<br>04.07.2010</span>
                        </center>
                     </td>
                     <td class="box2" width="25%" height="190px" style="vertical-align:top;">
                        <center>
                           <a id="link3" class="iframe" href="fdl2010.htm">   ... USW


Nun stelle ich aber fest, dass es immernoch nicht geht. Ich erhalte beim Aufruf der Seite jeweils die komplette html, anstatt einfach die hrefs ersetzt werden.

Ich habe es auch schon mit folgender Variante probiert:

Code:
$('a.link').each(function(index){
                  $(this).load('http://www.gesangverein-lyra.de/bilder.htm div#galerieauswahl a#link'+index,function(refs){
                     $('a.link').attr('href', refs)
                  });
               });


Damit produziert er mir - neben dem gewünschten Link - die Vorschaulbilder der Originalseite, welche nun mittels kompletten html-Text der Originalseite im href von a.link ausgegeben werden.

Ich überlege schon, ob ich mobilen Endnutzern überhaupt das Vergnügen einer Galerie einräumen soll. *Schnief*
  View user's profile Private Nachricht senden
 
Ähnliche Themen window.alert popUP
Alert Box kommt automatisch
Flash Objekt -> Alert Fenster bei ie6?
Javascript Wuiz - wie schalteich die Alert-Messages ab
JavaScript wird im IE nicht ausgeführt!
[php] return wird nicht ausgeführt
Neues Thema eröffnen   Neue Antwort erstellen Seite: Zurück  1, 2, 3, 4  Weiter
MGi Foren-Übersicht -> Allgemeines - Nonprint


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.