2017-12-12 3 views
0

Ich habe Schwierigkeiten, meine eigene einfache modale Erfahrung für mein Portfolio zu erstellen. Alles, was ich versuche, ist, dass der Benutzer auf ein Bild klickt und eine modale Box mit den Informationen öffnet, die mit dem angeklickten Bild korrelieren. Das ist alles gut und schön, aber ich kann Jquery nicht dazu bringen, das programmatisch zu machen. Ich bin rostig mit meinem Javascript und etwas klickt nicht in mein Gehirn, ich weiß, das sollte nicht schwer sein.Versuch, den korrelierenden modalen Inhalt anzuzeigen, wenn der modale Trigger geklickt wird

Hier ist mein html

<div class="projects"> 
    <div class="projects__grid"> 
     <a class="modal-trigger" data-target="modal1"> 
     <div class="projects__image"> 
      <div class="modal" id="modal1"> 
      <div class="project__desc modal-content"> 
       <p class="text">1st modal test --- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repudiandae voluptas laborum, porro dignissimos quis quod eius. Cupiditate, laborum, eligendi eaque magni maiores placeat, sint voluptate quos dicta ad fugit corporis. 
       </p> 
      </div> 
      </div> 
     </div> 
     </a> 

     <a class="modal-trigger" data-target="modal2"> 
     <div class="projects__image"> 
      <div class="modal" id="modal2"> 
      <div class="project__desc modal-content"> 
       <p class="text">2nd modal test --- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repudiandae voluptas laborum, porro dignissimos quis quod eius. Cupiditate, laborum, eligendi eaque magni maiores placeat, sint voluptate quos dicta ad fugit corporis. 
       </p> 
      </div> 
      </div> 
     </div> 
     </a> 
    </div> 
</div> 

sicher, dass ich nur benutzerdefinierte Klassen oder IDs für jeden modal Trigger schaffen könnte, aber ich will meinen Code trocken halten. Ich habe versucht:

$(this, '.modal-trigger').click(function() { $(this, '.modal').toggle(); })

und viele andere ähnliche Angriffswinkel. Was fehlt mir hier? Ich muss nur die geschachtelte ID für den verwandten modalen Inhalt abrufen, unabhängig davon, auf welchen Modal-Trigger geklickt wird. Ich weiß, dass ich irgendwie "dieses" benutzen muss, aber ich kann es nicht herausfinden.

Vielen Dank für einen Einblick, sorry, wenn dies vorher gepostet wurde, konnte ich nichts finden, was meine Frage beantwortete ... irgendwie.

Antwort

0

ich eine Geige gemacht haben, wo diese

jsfiddle

$('.modal-trigger').click(function(event) { 
    let modalExample = $(this).find('.modal'); 
    modalExample.toggle(); 
}); 

Sie dies in Ihrem Klick-Ereignis

+0

Omg, ich kann nicht glauben, wie nah ich habe zu entfernen funktionieren sollte , und wie einfach von einer Lösung ist es lol. Also hatte ich das richtige Grundkonzept, aber um die entsprechende Klasse tatsächlich zu finden, müssen Sie die .find() -Methode verwenden ... Vielen Dank, Kumpel, 2 Stunden Verwirrung von mir wurden in wenigen Minuten von Ihnen gelöst ! Vielen Dank! – ChewyMcFats

+0

Mit einem Benutzernamen wie diesem musst du helfen .. :) – Lasse

+0

Wissen Sie warum, wenn Sie versuchen, Anker-Tags innerhalb des Modal-Inhalts hinzuzufügen, weigert es sich zu öffnen? Hat .find() etwas seltsames gegen Anker-Tags? Es funktioniert mit grundlegenden Texten und Bildern, aber nicht mit Links. Hier ist der aktualisierte JSFIDDLE: https://jsfiddle.net/5kh4gsLL/1/ – ChewyMcFats

Verwandte Themen