Announcement

Collapse
No announcement yet.

HTML Element dynamisch darstellen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • HTML Element dynamisch darstellen

    Hallo zusammen,
    ich hoffe ich habe mein Problem jetzt in die richtige Kategorie gestellt.
    Es geht um folgendes:

    Ich habe ein XSLT für die Verarbeitung von mehreren XML Dateien geschrieben.
    Nun wollte ich es um die Möglichkeit erweitern bestimmte Textpassagen anzuzeigen bzw. verstecken zu können.
    Das ganze habe ich mit einfachem CSS realisert:

    Code:
    <style>
    /*<![CDATA[*/
    
    div			{
    			border:  1px solid #000000;
    			padding: 1em .5em;
    			background-color: #FFFFFF;
                            font-size: .8em;
    			}
    
    a		{color: #000000;}
    			
    a:focus, a:active	{background-color: #99CCFF;	}	
    
    a span	        	{display: none;}
    
    a:focus span, a:active span
    		{
    		display: block;
    		border:  0 none;
    		padding: 1em;
    		text-decoration: none;
    		background-color: #99CCFF;
    		}
    /*]]>*/
    </style>
    Und der Aufruf erfolgt dann hier:

    Code:
    <a id="block" href="#block">aufklappen
    		<span>
    		<table>
     <xsl:call-template name="Schleife">
     <xsl:with-param name="Zaehler" select="1" />
     </xsl:call-template>
                     </table>
                    </span>
    	</a>
    Der ganze Codeblock selber wird ebenfalls x-mal dargestellt. Allerdings ergibt sich nun das Problem, dass egal, an welcher Stelle ich eine dieser Textpassagen aufklappen will, ich automatisch immer die erste aufklappe.
    In reinem HTML funktioniert es, ohne dass ich eindeutige Bezeichner vergebe.
    Jetzt war meine Idee natürlich, für jeden Aufruf einen eindeutigen Namen & Link zu vergeben, also Block1, Block2,..., Blockx.
    Aber das ist natürlich in HTML per se nicht möglich, oder?
    Ich hatte auch schon den Gedanken, an das HTML Element eine xsl-Variable zu übergeben, allerdings habe ich auch hier keine Möglichkeit gefunden, diese Variable per HTML auslesen zu lassen...

    Ich suche also quasi eine Möglichkeit das ganze so darzustellen:

    Code:
    <a id="block[i]" href="#block[i]">aufklappen
    		<span>
    		<table>
     <xsl:call-template name="Schleife">
     <xsl:with-param name="Zaehler" select="1" />
     </xsl:call-template>
                     </table>
                    </span>
    	</a>
    Hat irgendjemand eine Idee?

    Danke, Danke, Danke!

    Liebe Grüße,
    Maria.
    Liebe Grüße,
    Maria.

  • #2
    Nachtrag

    Ich hatte noch etwas vergessen zu erwähnen.
    Wenn ich ein beliebiges Element 'blockx' öffne, dann bleibt es, wenn ich die Maus einige Sekunden gedrückt halte und von dem Link wegziehe. Klicke ich nur kurz auf dieses 'blockx', wird mir, wie oben erwähnt, das allererste geöffnet.

    Ich habe jetzt herausgefunden, dass der Link selber das Problem ist.
    Code:
    <a id="block" href="#block">
    Gebe ich keinen Linkverweis an, also ' a href="" ' , braucht er aber natürlich dennoch etwas wo er hinverlinken kann. Wie kann ich das umgehen bzw. wie kann ich ihn dynamisch an die Stelle im Text springen lassen? Ein '<xsl:value-of-select="" />' kann ich ja nicht als Inhalt eines Links angeben, oder?

    Ich habe jetzt erstmal ein 'javascript: void(0);' in den href gegeben, dann geht es, ist aber denke ich nicht der Sinn und Zweck der Übung, oder?
    Zuletzt editiert von Miaria; 05.10.2008, 14:50. Reason: Ergänzung
    Liebe Grüße,
    Maria.

    Comment


    • #3
      Mal abgesehen vom ungültigen HTML funktioniert die Kommunikation von HTML zu XSLT so nicht. Das ließe sich ggf. mit JavaScript-gesteuerten Transformationen und Parameterübergabe umsetzen. Alternativ kann mit XSLT eine HTML-Ausgabe erzeugt werden, die wiederum JavaScript-Funktionen zum Auf-/Zuklappen aufruft (CSS-Eigenschaften mit JS dynamisch setzen, also display: block / none. Insofern ist das kein XSLT-Problem.

      Comment


      • #4
        Danke für Deine Antwort. Beim weiteren Ausprobieren, bemerkte ich dann, dass das eher ein HTML Problem ist.
        Was meintest Du mit ungültigen HTML? Wegen dem <table> um den Aufruf?
        Liebe Grüße,
        Maria.

        Comment

        Working...
        X