J'ai ajouté l'ID du div à l'URL, mais après avoir cliqué sur le bouton de fermeture speaker--card
div 中的类 speakers--overlay-close
, je ne peux pas le supprimer.
var myDivs = document.getElementsByClassName('speakers--card'); var closeDiv = document.getElementsByClassName('speakers--overlay-close'); for(var i = 0; i < myDivs.length; i++) { myDivs[i].addEventListener('click', function (event) { console.log(this.getAttribute("id")); let thisID = this.getAttribute("id"); window.location.href = window.location.href + "#" + thisID; }); }
J'ai testé quelques fonctions fractionnées, etc. mais cela ne fonctionne pas et l'URL reste la même - utilisez #
+ id
.
J'ai fini par faire quelque chose comme ça, mais je ne sais pas si c'est la bonne façon :
Étant donné que le bouton de fermeture se trouve à l'intérieur du div, lorsque vous cliquez dessus, l'événement se propage et exécute le gestionnaire d'événements de clic du div, qui ajoute à nouveau le hachage. Vous pouvez arrêter la propagation des événements en appelant
event.stopPropagation()
dans le gestionnaire d'événements du bouton de fermeture, puis supprimer le hachage de l'URL.