Mathias Brodala: Verständnisfrage zu LightBox Skript

Beitrag lesen

Hallo Stefan.

ich habe mir mal den Code des LightBox Skript angeschaut:

<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/scriptaculous.js?load=effects"></script>
<script type="text/javascript" src="js/lightbox.js"></script>

<a href="images/image-1.jpg" rel="lightbox" title="my caption">image #1</a>

Ich verstehe nicht, wie das Ereignis beim Anklicken auf das Bild ausgelöst wird. Es ist doch kein onClick-Event definiert.

Oder geschieht das durch die rel-Anweisung?

Indirekt, ja. Aus lightbox.js:

  
// …  
  var anchors = document.getElementsByTagName('a');  
  
  // loop through all anchor tags  
  for (var i=0; i<anchors.length; i++){  
   var anchor = anchors[i];  
  
   var relAttribute = String(anchor.getAttribute('rel'));  
  
   // use the string.match() method to catch 'lightbox' references in the rel attribute  
   if (anchor.getAttribute('href') && (relAttribute.toLowerCase().match('lightbox'))){  
    anchor.onclick = function () {myLightbox.start(this); return false;}  
   }  
  }  
// …

Es werden hier also alle Links im Dokument durchlaufen, geprüft, ob diese über ein href-Attribut und ein rel-Attribut mit dem Wert „lighbox“ verfügen. Ist das der Fall, wird dem onclick-Eventhandler die benötigte Funktionalität hinzugefügt.

Einen schönen Sonntag noch.

Gruß, Mathias

--
ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
debian/rules