Je dois être en mesure d'ouvrir un IDI jQuery UI Modal sur une page lorsque l'ID de ce modal est transmis dans l'URL de la page. Par exemple:Arrêter le défilement vers l'ID lors de l'ouverture de jQuery Modal via l'URL
http://mysite.com/visit.html#directions
#directions est un DIV a identifié au bas de la page, juste avant l'élément de corps de fermeture. Il est instancié sous la forme d'une boîte de dialogue jQuery UI au chargement de la page, puis j'exécute une fonction pour vérifier l'URL actuelle de l'ID du modal. Si l'URL contient l'ID du modal, le modal est ouvert.
Voici ce que ma fonction auto-ouverte ressemble à:
function autoOpenModal() {
if (document.location.href.indexOf('#')) {
var uriParts = document.location.href.split('#');
var hashID = '#' + uriParts[1];
if ($(hashID) && $(hashID).hasClass('dialog')) {
$(hashID).dialog('open');
}
}
}
Le problème que je vais avoir est que le navigateur défile automatiquement à l'ID au bas de la page avant modal est ouvert. Ainsi, lorsque l'utilisateur ferme le modal, il se trouve en bas de la page (ce qui me semble "cassé").
Quelqu'un peut-il me dire comment j'arrête le navigateur de défilement automatique jusqu'à l'ID s'il vous plaît? J'ai jeté un oeil à event.preventDefault()
mais sans succès; Je ne suis pas sûr où et comment l'utiliser dans la chaîne d'événements.
Merci pour la suggestion, karim. Mais j'ai déjà essayé et ça ne semble pas fonctionner. Je pense que c'est parce que le navigateur "saute" à travers le balisage avant d'exécuter l'événement document.ready(). – markedup