I ask the question again because with all the answers they gave me I still could not solve the problem, which also seems super strange because several of the answers have a lot of logic!
What do I need?
Open a modal when you click on an image and then the modal one closes only when you click outside of it.
What use?
Materialize and JQuery and Thymeleaf (but should not affect anything)
HTML Code:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="icon" th:href="@{/favicon_heladeria.png}" />
<link rel="stylesheet" th:href="@{/vendor/materialize/css/materialize.css}" />
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" />
<link rel="stylesheet" th:href="@{/app.css}" />
<h2 class="mid-title">Nuestros Helados</h2>
</div>
<div class="helados container">
<div class="row">
<div class="col s12 l4" id="chocoDiv">
<a class="modal-trigger" href="#chocolateModal">
<img class="tastes" th:src="@{/images/chocolate.png}" />
</a>
<span class="taste-name">CHOCOLATES</span>
</div>
<div class="col s12 l4">
<img class="tastes" th:src="@{/images/crema.png}" />
<a href="#"></a>
<span class="taste-name">CREMAS</span>
</div>
<div class="col s12 l4">
<img class="tastes" th:src="@{/images/dulceDeLeche.png}" />
<a href="#"></a>
<span class="taste-name">DULCE DE LECHES</span>
</div>
<div class="col s12 l4">
<img class="tastes" th:src="@{/images/frutales.png}" />
<a href="#"></a>
<span class="taste-name">FRUTALES</span>
</div>
</div>
</div>
<!-- Modal -->
<div id="chocolateModal" class="modal">
<div>
<div class="modal-content">
<h4 class="modal-title">Chocolates</h4>
</div>
</div>
</div>
<script th:src="@{/vendor/jquery/jquery-1.11.3.js}"></script>
<script th:src="@{/vendor/materialize/js/materialize.min.js}"></script>
<script th:src="@{/app.js}"></script>
</body>
</html>
I leave the comments to see the other options that I tried without achieving anything useful: (
JS Code:
$(function(){
// Activate mobile nav
$(".button-collapse").sideNav({edge: 'right'});
});
// $(document).ready( () =>{
// $('.modal').modal();
// });
// ESTE FUE EL ÚNICO QUE ANDUVO (Pero luego no lo puedo cerrar)
//$('#chocoDiv').on('click', () => {
// $('#chocolateModal').show();
//});
document.querySelector('#chocoDiv').addEventListener('click', () => {
var element = document.querySelector('#chocolateModal');
var modal = M.Modal.init(element, {});
modal.open();
});
//$(document).ready(function(){
// $('.modal').modal();
// });
Any ideas that I may be doing wrong? It's rare that no option is right!